blob: c8cf39b8cfe57b32d383a3672a477ced20116b3c [file] [log] [blame]
<!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: be/src/runtime/buffered-block-mgr.h Source File</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&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;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('buffered-block-mgr_8h_source.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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</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="headertitle">
<div class="title">buffered-block-mgr.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="buffered-block-mgr_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// Copyright 2012 Cloudera Inc.</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// you may not use this file except in compliance with the License.</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// You may obtain a copy of the License at</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// See the License for the specific language governing permissions and</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// limitations under the License.</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef IMPALA_RUNTIME_BUFFERED_BLOCK_MGR</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define IMPALA_RUNTIME_BUFFERED_BLOCK_MGR</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &lt;boost/shared_ptr.hpp&gt;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="disk-io-mgr_8h.html">runtime/disk-io-mgr.h</a>&quot;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="tmp-file-mgr_8h.html">runtime/tmp-file-mgr.h</a>&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;openssl/aes.h&gt;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;openssl/sha.h&gt;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">namespace </span>impala {</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">class </span>RuntimeState;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"></span><span class="comment">//</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"></span><span class="comment">//</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment"></span><span class="comment">//</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment"></span><span class="comment">//</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment"></span><span class="comment">//</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment"></span><span class="comment">//</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment"></span><span class="comment">//</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html"> 92</a></span>&#160;<span class="comment"></span><span class="keyword">class </span><a class="code" href="classimpala_1_1BufferedBlockMgr.html">BufferedBlockMgr</a> {</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">struct </span><a class="code" href="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor.html">BufferDescriptor</a>;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">struct </span><a class="code" href="structimpala_1_1BufferedBlockMgr_1_1Client.html">Client</a>;</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="comment">//</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment"></span> <span class="comment">//</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment"></span> <span class="comment">//</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr_1_1Block.html"> 136</a></span>&#160;<span class="comment"></span> <span class="keyword">class </span><a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html">Block</a> : <span class="keyword">public</span> <a class="code" href="classimpala_1_1InternalQueue.html">InternalQueue</a>&lt;Block&gt;::Node {</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="classimpala_1_1Status.html">Status</a> <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a1d46ffe7b416a949b6fdb6e7828c3301">Pin</a>(<span class="keywordtype">bool</span>* pinned, <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html">Block</a>* release_block = NULL, <span class="keywordtype">bool</span> unpin = <span class="keyword">true</span>);</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="classimpala_1_1Status.html">Status</a> <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a03ad00fa7c792f4fc85ba5e573a30369">Unpin</a>();</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="classimpala_1_1Status.html">Status</a> <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a98ac414f60e71a25c45ec2526c5bcf87">Delete</a>();</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a99b13bc2126e2dc8badc46a569cfb8e5"> 156</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a99b13bc2126e2dc8badc46a569cfb8e5">AddRow</a>() { ++<a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#ace9778913ab978a887b7f7092841f75f">num_rows_</a>; }</div>
<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a0f1e51ff5ab49e2114c837398671b071"> 157</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a0f1e51ff5ab49e2114c837398671b071">num_rows</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#ace9778913ab978a887b7f7092841f75f">num_rows_</a>; }</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#ae9e943bc0fae320e955500d0cd74a293"> 160</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; T* <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#ae9e943bc0fae320e955500d0cd74a293">Allocate</a>(<span class="keywordtype">int</span> size) {</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; DCHECK_GE(<a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a05732338103987ffd309abee740d56a8">BytesRemaining</a>(), size);</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; uint8_t* current_location = <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a0988f68d7a28513af7c87a14b9494d7f">buffer_desc_</a>-&gt;<a class="code" href="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor.html#a51abd4564e625cee0fc5ac0e26d69fb5">buffer</a> + <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#abf498dbd8d39e17a7a6009093e10a21f">valid_data_len_</a>;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#abf498dbd8d39e17a7a6009093e10a21f">valid_data_len_</a> += size;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>T*<span class="keyword">&gt;</span>(current_location);</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a05732338103987ffd309abee740d56a8"> 168</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a05732338103987ffd309abee740d56a8">BytesRemaining</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; DCHECK_NOTNULL(<a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a0988f68d7a28513af7c87a14b9494d7f">buffer_desc_</a>);</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a0988f68d7a28513af7c87a14b9494d7f">buffer_desc_</a>-&gt;<a class="code" href="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor.html#a37bccbbfe3643993f09cebfe2bfdd3c7">len</a> - <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#abf498dbd8d39e17a7a6009093e10a21f">valid_data_len_</a>;</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; }</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div>
<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a471d38f75ad1ef978ea60f31e391d47e"> 174</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a471d38f75ad1ef978ea60f31e391d47e">ReturnAllocation</a>(<span class="keywordtype">int</span> size) {</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; DCHECK_GE(<a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#abf498dbd8d39e17a7a6009093e10a21f">valid_data_len_</a>, size);</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#abf498dbd8d39e17a7a6009093e10a21f">valid_data_len_</a> -= size;</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; }</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div>
<div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a3beba257e3649515dd06d31a42667d5e"> 181</a></span>&#160; uint8_t* <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a3beba257e3649515dd06d31a42667d5e">buffer</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; DCHECK_NOTNULL(<a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a0988f68d7a28513af7c87a14b9494d7f">buffer_desc_</a>);</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a0988f68d7a28513af7c87a14b9494d7f">buffer_desc_</a>-&gt;<a class="code" href="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor.html#a51abd4564e625cee0fc5ac0e26d69fb5">buffer</a>;</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; }</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div>
<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a9e27fd2bf12a0f46eaea29de635b231a"> 187</a></span>&#160; int64_t <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a9e27fd2bf12a0f46eaea29de635b231a">valid_data_len</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#abf498dbd8d39e17a7a6009093e10a21f">valid_data_len_</a>; }</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
<div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a19e6454922bcb1a9c8a1a0e4b0020076"> 191</a></span>&#160; int64_t <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a19e6454922bcb1a9c8a1a0e4b0020076">buffer_len</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; DCHECK(<a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a678a5f46ff6c1f21cd6409c44fd8e52d">is_pinned</a>());</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a0988f68d7a28513af7c87a14b9494d7f">buffer_desc_</a>-&gt;<a class="code" href="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor.html#a37bccbbfe3643993f09cebfe2bfdd3c7">len</a>;</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div>
<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#ac6eaa4369a88f027db9e0e484fd158e6"> 198</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#ac6eaa4369a88f027db9e0e484fd158e6">is_max_size</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; DCHECK(<a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a678a5f46ff6c1f21cd6409c44fd8e52d">is_pinned</a>());</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a0988f68d7a28513af7c87a14b9494d7f">buffer_desc_</a>-&gt;<a class="code" href="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor.html#a37bccbbfe3643993f09cebfe2bfdd3c7">len</a> == <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a7073784f40755a243b4b0feec3177989">block_mgr_</a>-&gt;<a class="code" href="classimpala_1_1BufferedBlockMgr.html#ac6e6d613d4ed039d310d789ead20e231">max_block_size</a>();</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; }</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div>
<div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a678a5f46ff6c1f21cd6409c44fd8e52d"> 203</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a678a5f46ff6c1f21cd6409c44fd8e52d">is_pinned</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#aeca62eb216d7c466faa19926b2a6aa3b">is_pinned_</a>; }</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; std::string <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#aa53f27958871d6fb11225fac7da8a2de">DebugString</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#aaf94fa91fbf3650fc5a2608ee2d64827"> 209</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classimpala_1_1BufferedBlockMgr.html">BufferedBlockMgr</a>;</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#acc28055c6976b7b7979572f7f2554065">Block</a>(<a class="code" href="classimpala_1_1BufferedBlockMgr.html">BufferedBlockMgr</a>* block_mgr);</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a225d09b43de0ec9aa6d727a054d034a7">Init</a>();</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a9a7f4c0ec69a48806af60dbe5457837f">Validate</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div>
<div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a0988f68d7a28513af7c87a14b9494d7f"> 222</a></span>&#160; <a class="code" href="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor.html">BufferDescriptor</a>* <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a0988f68d7a28513af7c87a14b9494d7f">buffer_desc_</a>;</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div>
<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a7073784f40755a243b4b0feec3177989"> 225</a></span>&#160; <a class="code" href="classimpala_1_1BufferedBlockMgr.html">BufferedBlockMgr</a>* <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a7073784f40755a243b4b0feec3177989">block_mgr_</a>;</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div>
<div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#af101e58c9293bfd555da560bf6108f4c"> 228</a></span>&#160; <a class="code" href="structimpala_1_1BufferedBlockMgr_1_1Client.html">Client</a>* <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#af101e58c9293bfd555da560bf6108f4c">client_</a>;</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div>
<div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a3cfb659c9d42d3244a5ad364ae429f65"> 236</a></span>&#160; <a class="code" href="classimpala_1_1DiskIoMgr_1_1WriteRange.html">DiskIoMgr::WriteRange</a>* <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a3cfb659c9d42d3244a5ad364ae429f65">write_range_</a>;</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div>
<div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#abf498dbd8d39e17a7a6009093e10a21f"> 239</a></span>&#160; int64_t <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#abf498dbd8d39e17a7a6009093e10a21f">valid_data_len_</a>;</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div>
<div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#ace9778913ab978a887b7f7092841f75f"> 242</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#ace9778913ab978a887b7f7092841f75f">num_rows_</a>;</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div>
<div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a7edf1456f8b8387c576894223bcba51a"> 247</a></span>&#160; boost::scoped_array&lt;uint8_t&gt; <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a7edf1456f8b8387c576894223bcba51a">encrypted_write_buffer_</a>;</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div>
<div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#ae1ee9f87bdd38df1dfcecf8ba1b2fc26"> 250</a></span>&#160; uint8_t <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#ae1ee9f87bdd38df1dfcecf8ba1b2fc26">key_</a>[32];</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div>
<div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a65ec47fa107545f44e0088bec963aeab"> 259</a></span>&#160; uint8_t <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a65ec47fa107545f44e0088bec963aeab">iv_</a>[AES_BLOCK_SIZE];</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div>
<div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a1678b167da24899ad4adbb2a0b4a286b"> 263</a></span>&#160; uint8_t <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a1678b167da24899ad4adbb2a0b4a286b">hash_</a>[SHA256_DIGEST_LENGTH];</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div>
<div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#aeca62eb216d7c466faa19926b2a6aa3b"> 270</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#aeca62eb216d7c466faa19926b2a6aa3b">is_pinned_</a>;</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div>
<div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a827d453cd204c0ec92964d1cecf7369b"> 274</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a827d453cd204c0ec92964d1cecf7369b">in_write_</a>;</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div>
<div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a5089ae246e8e767b5b770629abee3a19"> 277</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a5089ae246e8e767b5b770629abee3a19">is_deleted_</a>;</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;</div>
<div class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a5da55f7a691c542a208af013fe5e7306"> 283</a></span>&#160; boost::condition_variable <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a5da55f7a691c542a208af013fe5e7306">write_complete_cv_</a>;</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div>
<div class="line"><a name="l00288"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#aab5f6ba25bab9147d3cc30c30943a26e"> 288</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html#aab5f6ba25bab9147d3cc30c30943a26e">client_local_</a>;</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }; <span class="comment">// class Block</span></div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keyword">static</span> <a class="code" href="classimpala_1_1Status.html">Status</a> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a76ef041b360fb6146c687b3e479546e1">Create</a>(<a class="code" href="classimpala_1_1RuntimeState.html">RuntimeState</a>* state, <a class="code" href="classimpala_1_1MemTracker.html">MemTracker</a>* parent,</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <a class="code" href="classimpala_1_1RuntimeProfile.html">RuntimeProfile</a>* <a class="code" href="classimpala_1_1BufferedBlockMgr.html#af4157a6d2c9c4541b172ff653ce55d7b">profile</a>, int64_t mem_limit, int64_t buffer_size,</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; boost::shared_ptr&lt;BufferedBlockMgr&gt;* block_mgr);</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a65cb8755b19bbfb34a1e0f6d1a4fc8e0">~BufferedBlockMgr</a>();</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <a class="code" href="classimpala_1_1Status.html">Status</a> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a52bd5a104f158068d4627f8451dcde76">RegisterClient</a>(<span class="keywordtype">int</span> num_reserved_buffers, <a class="code" href="classimpala_1_1MemTracker.html">MemTracker</a>* <a class="code" href="expr-benchmark_8cc.html#ad327327fa716227ff7993880cbc4698f">tracker</a>,</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <a class="code" href="classimpala_1_1RuntimeState.html">RuntimeState</a>* state, <a class="code" href="structimpala_1_1BufferedBlockMgr_1_1Client.html">Client</a>** client);</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a25a5078b6ff96b4bc78dd59ebe447919">ClearReservations</a>(<a class="code" href="structimpala_1_1BufferedBlockMgr_1_1Client.html">Client</a>* client);</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#aa9b3d1904de97e5829b8d8fe880ba506">TryAcquireTmpReservation</a>(<a class="code" href="structimpala_1_1BufferedBlockMgr_1_1Client.html">Client</a>* client, <span class="keywordtype">int</span> num_buffers);</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#ae78494b85f739b709f17404b31cce793">ClearTmpReservation</a>(<a class="code" href="structimpala_1_1BufferedBlockMgr_1_1Client.html">Client</a>* client);</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div>
<div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#a4477cc5ba95e9952329bb67c15585556"> 331</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a4477cc5ba95e9952329bb67c15585556">GetNumReservedBlocks</a>() {</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1TmpFileMgr.html#ab5e3a97e13617b79896eab51b525779d">TmpFileMgr::num_tmp_devices</a>();</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; }</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <a class="code" href="classimpala_1_1Status.html">Status</a> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#ac4ddea92960294d8f764c2974fe273f9">GetNewBlock</a>(<a class="code" href="classimpala_1_1BufferedBlockMgr.html#a9bee35b146080ab7239cc8aff02333c3">Client</a>* client, Block* unpin_block, Block** block, int64_t len = -1);</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a89d56650a9bc9238d92bebe8c1ef6d65">Cancel</a>();</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; std::string <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a1dba9cde4a03d0d395bcb59345db7248">DebugString</a>(<a class="code" href="classimpala_1_1BufferedBlockMgr.html#a9bee35b146080ab7239cc8aff02333c3">Client</a>* client = NULL);</div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a52695550d255f216048e336d91d526bc">ConsumeMemory</a>(<a class="code" href="classimpala_1_1BufferedBlockMgr.html#a9bee35b146080ab7239cc8aff02333c3">Client</a>* client, int64_t size);</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a794a503c56450c23960e10144a3ee25f">ReleaseMemory</a>(<a class="code" href="classimpala_1_1BufferedBlockMgr.html#a9bee35b146080ab7239cc8aff02333c3">Client</a>* client, int64_t size);</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; int64_t <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a2c23e2921578ef202e7430a0375bfca8">available_buffers</a>(<a class="code" href="classimpala_1_1BufferedBlockMgr.html#a9bee35b146080ab7239cc8aff02333c3">Client</a>* client) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <a class="code" href="classimpala_1_1Status.html">Status</a> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a56f3200d738096167c3e6a50d077ced8">MemLimitTooLowError</a>(<a class="code" href="classimpala_1_1BufferedBlockMgr.html#a9bee35b146080ab7239cc8aff02333c3">Client</a>* client);</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;</div>
<div class="line"><a name="l00380"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#a3cd26d226927aebcabe057773793bcce"> 380</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a3cd26d226927aebcabe057773793bcce">available_allocated_buffers</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#acf728961e82fb837311be3143ac369e0">all_io_buffers_</a>.size(); }</div>
<div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#a4cb1e195174c2f3fded3cdae639af303"> 381</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a4cb1e195174c2f3fded3cdae639af303">num_free_buffers</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#ad77e0ded5dd0baa97ec5aca3be0c4857">free_io_buffers_</a>.size(); }</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordtype">int</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a342aa2bcf74c09ab57718e5fd8681f96">num_pinned_buffers</a>(<a class="code" href="classimpala_1_1BufferedBlockMgr.html#a9bee35b146080ab7239cc8aff02333c3">Client</a>* client) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordtype">int</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a823f6e86cee0f174f0ad36c3d253b287">num_reserved_buffers_remaining</a>(<a class="code" href="classimpala_1_1BufferedBlockMgr.html#a9bee35b146080ab7239cc8aff02333c3">Client</a>* client) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <a class="code" href="classimpala_1_1MemTracker.html">MemTracker</a>* <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a6d133271046a0b51c118ee115faca19a">get_tracker</a>(<a class="code" href="classimpala_1_1BufferedBlockMgr.html#a9bee35b146080ab7239cc8aff02333c3">Client</a>* client) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#ac6e6d613d4ed039d310d789ead20e231"> 386</a></span>&#160; int64_t <a class="code" href="classimpala_1_1BufferedBlockMgr.html#ac6e6d613d4ed039d310d789ead20e231">max_block_size</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#af689303917eaaf85ce4ad0a44d6e6c43">max_block_size_</a>; }</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; int64_t <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a19190fc46c5f1038d816b7e09581c9f6">bytes_allocated</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#af4157a6d2c9c4541b172ff653ce55d7b"> 388</a></span>&#160; <a class="code" href="classimpala_1_1RuntimeProfile.html">RuntimeProfile</a>* <a class="code" href="classimpala_1_1BufferedBlockMgr.html#af4157a6d2c9c4541b172ff653ce55d7b">profile</a>() { <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a555fb8f4857bdab650895b4468332c53">profile_</a>.get(); }</div>
<div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#ab7d678eeb63832623e3028e379879af2"> 389</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#ab7d678eeb63832623e3028e379879af2">writes_issued</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a7f5db3ecfabd31a7111d13385e971979">writes_issued_</a>; }</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00392"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#a9bee35b146080ab7239cc8aff02333c3"> 392</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">struct </span><a class="code" href="structimpala_1_1BufferedBlockMgr_1_1Client.html">Client</a>;</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;</div>
<div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor.html"> 395</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor.html">BufferDescriptor</a> : <span class="keyword">public</span> <a class="code" href="classimpala_1_1InternalQueue.html">InternalQueue</a>&lt;BufferDescriptor&gt;::Node {</div>
<div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor.html#a51abd4564e625cee0fc5ac0e26d69fb5"> 397</a></span>&#160; uint8_t* <a class="code" href="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor.html#a51abd4564e625cee0fc5ac0e26d69fb5">buffer</a>;</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;</div>
<div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor.html#a37bccbbfe3643993f09cebfe2bfdd3c7"> 400</a></span>&#160; int64_t <a class="code" href="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor.html#a37bccbbfe3643993f09cebfe2bfdd3c7">len</a>;</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;</div>
<div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor.html#af819b22b3d443190de417b94a5e93dd6"> 403</a></span>&#160; <a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html">Block</a>* <a class="code" href="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor.html#af819b22b3d443190de417b94a5e93dd6">block</a>;</div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div>
<div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor.html#ab4f7b471c13eb610043ab14d690f05d8"> 406</a></span>&#160; std::list&lt;BufferDescriptor*&gt;::iterator <a class="code" href="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor.html#ab4f7b471c13eb610043ab14d690f05d8">all_buffers_it</a>;</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div>
<div class="line"><a name="l00408"></a><span class="lineno"><a class="line" href="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor.html#a58a79fd29205d40c1bbf391d2e275c8d"> 408</a></span>&#160; <a class="code" href="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor.html#a58a79fd29205d40c1bbf391d2e275c8d">BufferDescriptor</a>(uint8_t* buf, int64_t <a class="code" href="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor.html#a37bccbbfe3643993f09cebfe2bfdd3c7">len</a>)</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; : <a class="code" href="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor.html#a51abd4564e625cee0fc5ac0e26d69fb5">buffer</a>(buf), len(len), <a class="code" href="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor.html#af819b22b3d443190de417b94a5e93dd6">block</a>(NULL) {</div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; }</div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; };</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a0f71a0b57195f21a0b24073df9cb8342">BufferedBlockMgr</a>(<a class="code" href="classimpala_1_1RuntimeState.html">RuntimeState</a>* state, int64_t block_size);</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a5bbad02d3a6e0184cad5d8682ece8dae">Init</a>(<a class="code" href="classimpala_1_1DiskIoMgr.html">DiskIoMgr</a>* io_mgr, <a class="code" href="classimpala_1_1RuntimeProfile.html">RuntimeProfile</a>* <a class="code" href="classimpala_1_1BufferedBlockMgr.html#af4157a6d2c9c4541b172ff653ce55d7b">profile</a>,</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <a class="code" href="classimpala_1_1MemTracker.html">MemTracker</a>* parent_tracker, int64_t mem_limit);</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <a class="code" href="classimpala_1_1Status.html">Status</a> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a3c5fc9a51a790dba1ed1ff38af9e9ce7">InitTmpFiles</a>();</div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <a class="code" href="classimpala_1_1Status.html">Status</a> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a897cbbbcebeb8e8399d03053908030fe">PinBlock</a>(Block* block, <span class="keywordtype">bool</span>* pinned, Block* src, <span class="keywordtype">bool</span> unpin);</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <a class="code" href="classimpala_1_1Status.html">Status</a> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#af603b95283cb5edcfc9a781a387bdb43">UnpinBlock</a>(Block* block);</div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <a class="code" href="classimpala_1_1Status.html">Status</a> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a87fe1fd37d2ee3599b8bbb81dc80aa2b">DeleteBlock</a>(Block* block);</div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <a class="code" href="classimpala_1_1Status.html">Status</a> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a6a00178efa6dc1eab5e8e76f7745dac8">DeleteOrUnpinBlock</a>(Block* block, <span class="keywordtype">bool</span> unpin);</div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <a class="code" href="classimpala_1_1Status.html">Status</a> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a09e13d36c3908c8f988ba5564f63d70b">TransferBuffer</a>(Block* dst, Block* src, <span class="keywordtype">bool</span> unpin);</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; int64_t <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a3cf3eda5223c4487cd54eb54aabace9f">remaining_unreserved_buffers</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;</div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <a class="code" href="classimpala_1_1Status.html">Status</a> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#afba6a87429b782e109a3f99ef25e2900">FindBufferForBlock</a>(Block* block, <span class="keywordtype">bool</span>* in_mem);</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;</div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <a class="code" href="classimpala_1_1Status.html">Status</a> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a99ac55721ceae0175edb3c44c50d8550">FindBuffer</a>(boost::unique_lock&lt;boost::mutex&gt;&amp; lock,</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; BufferDescriptor** buffer);</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;</div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <a class="code" href="classimpala_1_1Status.html">Status</a> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a9e3f63dec76e5f906fd50a011263988f">WriteUnpinnedBlocks</a>();</div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;</div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <a class="code" href="classimpala_1_1Status.html">Status</a> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a838b49f1c3c947a078d500baf6d93ae5">WriteUnpinnedBlock</a>(Block* block);</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;</div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a4f58a54274252c7bb3c54e2317630933">WriteComplete</a>(Block* block, <span class="keyword">const</span> <a class="code" href="classimpala_1_1Status.html">Status</a>&amp; write_status);</div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;</div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a57538dda5ea4f7a2a43a5a2fbaf63bca">ReturnUnusedBlock</a>(Block* block);</div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;</div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; Block* <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a0cfc416ca77efffdbd943fabd773d706">GetUnusedBlock</a>(<a class="code" href="classimpala_1_1BufferedBlockMgr.html#a9bee35b146080ab7239cc8aff02333c3">Client</a>* client);</div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;</div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a6e3d9f82322d2dbec44a0d194ad579d7">Validate</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; std::string <a class="code" href="classimpala_1_1BufferedBlockMgr.html#ac5fe211cdbf31b5fb3bc8c428c8b780f">DebugInternal</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;</div>
<div class="line"><a name="l00496"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#af689303917eaaf85ce4ad0a44d6e6c43"> 496</a></span>&#160; <span class="keyword">const</span> int64_t <a class="code" href="classimpala_1_1BufferedBlockMgr.html#af689303917eaaf85ce4ad0a44d6e6c43">max_block_size_</a>;</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;</div>
<div class="line"><a name="l00500"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#a6bfcfda8f2e29c07a4f050a6c07fd808"> 500</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a6bfcfda8f2e29c07a4f050a6c07fd808">block_write_threshold_</a>;</div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;</div>
<div class="line"><a name="l00504"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#a5fb791cacf01816b470330d014469f4e"> 504</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a5fb791cacf01816b470330d014469f4e">disable_spill_</a>;</div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;</div>
<div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#a4da642021a8ff01b90040b228cba10bd"> 506</a></span>&#160; <span class="keyword">const</span> TUniqueId <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a4da642021a8ff01b90040b228cba10bd">query_id_</a>;</div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;</div>
<div class="line"><a name="l00508"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#aa4ef162071abe0ae88c47e58a64e260b"> 508</a></span>&#160; <a class="code" href="classimpala_1_1ObjectPool.html">ObjectPool</a> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#aa4ef162071abe0ae88c47e58a64e260b">obj_pool_</a>;</div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;</div>
<div class="line"><a name="l00511"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#ac215127b6c5f5ea3f80500ced986d5ae"> 511</a></span>&#160; boost::scoped_ptr&lt;MemTracker&gt; <a class="code" href="classimpala_1_1BufferedBlockMgr.html#ac215127b6c5f5ea3f80500ced986d5ae">mem_tracker_</a>;</div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;</div>
<div class="line"><a name="l00518"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#a9e66c366444d815acc70271ee38bdd19"> 518</a></span>&#160; boost::mutex <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a9e66c366444d815acc70271ee38bdd19">lock_</a>;</div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;</div>
<div class="line"><a name="l00521"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#a1a67f888364fd4e95aca80801781f958"> 521</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a1a67f888364fd4e95aca80801781f958">initialized_</a>;</div>
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div>
<div class="line"><a name="l00524"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#a871bf9c1ca694f278d16af94bd6dd9a7"> 524</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a871bf9c1ca694f278d16af94bd6dd9a7">unfullfilled_reserved_buffers_</a>;</div>
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;</div>
<div class="line"><a name="l00527"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#ad4f1123a87993beb9355cacd8ad4368f"> 527</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#ad4f1123a87993beb9355cacd8ad4368f">total_pinned_buffers_</a>;</div>
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;</div>
<div class="line"><a name="l00531"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#a55327b51166c1dced4425ecdf1b93658"> 531</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a55327b51166c1dced4425ecdf1b93658">non_local_outstanding_writes_</a>;</div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;</div>
<div class="line"><a name="l00534"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#ad13df5bfb8825411a1c2579879a35eab"> 534</a></span>&#160; boost::condition_variable <a class="code" href="classimpala_1_1BufferedBlockMgr.html#ad13df5bfb8825411a1c2579879a35eab">buffer_available_cv_</a>;</div>
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;</div>
<div class="line"><a name="l00540"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#acee7e11e770fcceb10f9774a19aa0da3"> 540</a></span>&#160; <a class="code" href="classimpala_1_1InternalQueue.html">InternalQueue&lt;Block&gt;</a> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#acee7e11e770fcceb10f9774a19aa0da3">unpinned_blocks_</a>;</div>
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;</div>
<div class="line"><a name="l00546"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#a943168d8980260c3dd562a36a3b483b1"> 546</a></span>&#160; <a class="code" href="classimpala_1_1InternalQueue.html">InternalQueue&lt;Block&gt;</a> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a943168d8980260c3dd562a36a3b483b1">unused_blocks_</a>;</div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;</div>
<div class="line"><a name="l00553"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#ad77e0ded5dd0baa97ec5aca3be0c4857"> 553</a></span>&#160; <a class="code" href="classimpala_1_1InternalQueue.html">InternalQueue&lt;BufferDescriptor&gt;</a> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#ad77e0ded5dd0baa97ec5aca3be0c4857">free_io_buffers_</a>;</div>
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;</div>
<div class="line"><a name="l00556"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#acf728961e82fb837311be3143ac369e0"> 556</a></span>&#160; std::list&lt;BufferDescriptor*&gt; <a class="code" href="classimpala_1_1BufferedBlockMgr.html#acf728961e82fb837311be3143ac369e0">all_io_buffers_</a>;</div>
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;</div>
<div class="line"><a name="l00560"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#ae3ca8baeb5e41ff28afbabc22d6d7e29"> 560</a></span>&#160; boost::ptr_vector&lt;TmpFileMgr::File&gt; <a class="code" href="classimpala_1_1BufferedBlockMgr.html#ae3ca8baeb5e41ff28afbabc22d6d7e29">tmp_files_</a>;</div>
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;</div>
<div class="line"><a name="l00564"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#a4b942031de4227fa6abc6d6b253dbc5b"> 564</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a4b942031de4227fa6abc6d6b253dbc5b">next_block_index_</a>;</div>
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;</div>
<div class="line"><a name="l00567"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#a3727560d3056edc8f0d6f67c30b18a8a"> 567</a></span>&#160; <a class="code" href="classimpala_1_1DiskIoMgr.html">DiskIoMgr</a>* <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a3727560d3056edc8f0d6f67c30b18a8a">io_mgr_</a>;</div>
<div class="line"><a name="l00568"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#a3fa292d642eacb664388d07792294f9b"> 568</a></span>&#160; <a class="code" href="classimpala_1_1DiskIoMgr_1_1RequestContext.html">DiskIoMgr::RequestContext</a>* <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a3fa292d642eacb664388d07792294f9b">io_request_context_</a>;</div>
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;</div>
<div class="line"><a name="l00573"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#aaaa53b664c5ec1265c89b25afd70aa04"> 573</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#aaaa53b664c5ec1265c89b25afd70aa04">is_cancelled_</a>;</div>
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;</div>
<div class="line"><a name="l00576"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#a555fb8f4857bdab650895b4468332c53"> 576</a></span>&#160; boost::scoped_ptr&lt;RuntimeProfile&gt; <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a555fb8f4857bdab650895b4468332c53">profile_</a>;</div>
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;</div>
<div class="line"><a name="l00579"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#a7c9ada787430720de06f3eafc47af53e"> 579</a></span>&#160; <a class="code" href="classimpala_1_1RuntimeProfile_1_1Counter.html">RuntimeProfile::Counter</a>* <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a7c9ada787430720de06f3eafc47af53e">mem_limit_counter_</a>;</div>
<div class="line"><a name="l00580"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#acb4438f9c5fca33d44facd350ada51ff"> 580</a></span>&#160; <a class="code" href="classimpala_1_1RuntimeProfile_1_1Counter.html">RuntimeProfile::Counter</a>* <a class="code" href="classimpala_1_1BufferedBlockMgr.html#acb4438f9c5fca33d44facd350ada51ff">block_size_counter_</a>;</div>
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;</div>
<div class="line"><a name="l00583"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#ad679d4aee028b2611a6c0cadb63d6ba5"> 583</a></span>&#160; <a class="code" href="classimpala_1_1RuntimeProfile_1_1Counter.html">RuntimeProfile::Counter</a>* <a class="code" href="classimpala_1_1BufferedBlockMgr.html#ad679d4aee028b2611a6c0cadb63d6ba5">created_block_counter_</a>;</div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;</div>
<div class="line"><a name="l00586"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#a267ba7ea2b63d43fc37d5db79ceda533"> 586</a></span>&#160; <a class="code" href="classimpala_1_1RuntimeProfile_1_1Counter.html">RuntimeProfile::Counter</a>* <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a267ba7ea2b63d43fc37d5db79ceda533">recycled_blocks_counter_</a>;</div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;</div>
<div class="line"><a name="l00589"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#a4cc209237769542b3b75810332f7e3fd"> 589</a></span>&#160; <a class="code" href="classimpala_1_1RuntimeProfile_1_1Counter.html">RuntimeProfile::Counter</a>* <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a4cc209237769542b3b75810332f7e3fd">buffered_pin_counter_</a>;</div>
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;</div>
<div class="line"><a name="l00592"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#ad30d1250c262dd05e6090b37d4af35f2"> 592</a></span>&#160; <a class="code" href="classimpala_1_1RuntimeProfile_1_1Counter.html">RuntimeProfile::Counter</a>* <a class="code" href="classimpala_1_1BufferedBlockMgr.html#ad30d1250c262dd05e6090b37d4af35f2">disk_read_timer_</a>;</div>
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;</div>
<div class="line"><a name="l00595"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#a3b9871b3b2a381b5ecbbb37d7144b612"> 595</a></span>&#160; <a class="code" href="classimpala_1_1RuntimeProfile_1_1Counter.html">RuntimeProfile::Counter</a>* <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a3b9871b3b2a381b5ecbbb37d7144b612">buffer_wait_timer_</a>;</div>
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;</div>
<div class="line"><a name="l00598"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#af2ad74e4f63345951f3d9538d8e35307"> 598</a></span>&#160; <a class="code" href="classimpala_1_1RuntimeProfile_1_1Counter.html">RuntimeProfile::Counter</a>* <a class="code" href="classimpala_1_1BufferedBlockMgr.html#af2ad74e4f63345951f3d9538d8e35307">bytes_written_counter_</a>;</div>
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;</div>
<div class="line"><a name="l00601"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#aeb7806c5773497699e3d880a3770a140"> 601</a></span>&#160; <a class="code" href="classimpala_1_1RuntimeProfile_1_1Counter.html">RuntimeProfile::Counter</a>* <a class="code" href="classimpala_1_1BufferedBlockMgr.html#aeb7806c5773497699e3d880a3770a140">outstanding_writes_counter_</a>;</div>
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;</div>
<div class="line"><a name="l00604"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#a7c5d8f0b89fabd62f3fc640f94643948"> 604</a></span>&#160; <a class="code" href="classimpala_1_1RuntimeProfile_1_1Counter.html">RuntimeProfile::Counter</a>* <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a7c5d8f0b89fabd62f3fc640f94643948">encryption_timer_</a>;</div>
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;</div>
<div class="line"><a name="l00607"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#ab67107d799775549a42f5be44c8b04d4"> 607</a></span>&#160; <a class="code" href="classimpala_1_1RuntimeProfile_1_1Counter.html">RuntimeProfile::Counter</a>* <a class="code" href="classimpala_1_1BufferedBlockMgr.html#ab67107d799775549a42f5be44c8b04d4">integrity_check_timer_</a>;</div>
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;</div>
<div class="line"><a name="l00610"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#a7f5db3ecfabd31a7111d13385e971979"> 610</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a7f5db3ecfabd31a7111d13385e971979">writes_issued_</a>;</div>
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;</div>
<div class="line"><a name="l00613"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#a0dc5bc091c0ec45b24ae37e2da2bab5d"> 613</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classimpala_1_1SpinLock.html">SpinLock</a> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a0dc5bc091c0ec45b24ae37e2da2bab5d">static_block_mgrs_lock_</a>;</div>
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;</div>
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="keyword">typedef</span> boost::unordered_map&lt;TUniqueId, boost::weak_ptr&lt;BufferedBlockMgr&gt; &gt;</div>
<div class="line"><a name="l00620"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#aed8676a9964f72975b1f5b54983d2b03"> 620</a></span>&#160; <a class="code" href="classimpala_1_1BufferedBlockMgr.html#aed8676a9964f72975b1f5b54983d2b03">BlockMgrsMap</a>;</div>
<div class="line"><a name="l00621"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#a2c0051cb9c4a7f374477f2e0bdfe50f5"> 621</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#aed8676a9964f72975b1f5b54983d2b03">BlockMgrsMap</a> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a2c0051cb9c4a7f374477f2e0bdfe50f5">query_to_block_mgrs_</a>;</div>
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;</div>
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <a class="code" href="classimpala_1_1Status.html">Status</a> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#aed64a83575d26aa3eccd67d4d49ca036">Encrypt</a>(<a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html">Block</a>* block, uint8_t** outbuf);</div>
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;</div>
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a337788b14042ad95cbb60d266c7657b6">EncryptDone</a>(<a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html">Block</a>* block);</div>
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;</div>
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <a class="code" href="classimpala_1_1Status.html">Status</a> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a41fc197d9b01618edc9893f400027e14">Decrypt</a>(<a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html">Block</a>* block);</div>
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;</div>
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a7df535bed5b54f21c6b2d7478277f3f5">SetHash</a>(<a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html">Block</a>* block);</div>
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;</div>
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <a class="code" href="classimpala_1_1Status.html">Status</a> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a784e8ae0194fbf99b7f16731ef317711">VerifyHash</a>(<a class="code" href="classimpala_1_1BufferedBlockMgr_1_1Block.html">Block</a>* block);</div>
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;</div>
<div class="line"><a name="l00641"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#aff37530220851e59a6483912ab2c475f"> 641</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#aff37530220851e59a6483912ab2c475f">encryption_</a>;</div>
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;</div>
<div class="line"><a name="l00647"></a><span class="lineno"><a class="line" href="classimpala_1_1BufferedBlockMgr.html#a7f7694664dd89a64c9e036bdcdc078e2"> 647</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1BufferedBlockMgr.html#a7f7694664dd89a64c9e036bdcdc078e2">check_integrity_</a>;</div>
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;}; <span class="comment">// class BufferedBlockMgr</span></div>
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;</div>
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;} <span class="comment">// namespace impala.</span></div>
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;</div>
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor_html_a51abd4564e625cee0fc5ac0e26d69fb5"><div class="ttname"><a href="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor.html#a51abd4564e625cee0fc5ac0e26d69fb5">impala::BufferedBlockMgr::BufferDescriptor::buffer</a></div><div class="ttdeci">uint8_t * buffer</div><div class="ttdoc">Start of the buffer. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00397">buffered-block-mgr.h:397</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_a0f1e51ff5ab49e2114c837398671b071"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a0f1e51ff5ab49e2114c837398671b071">impala::BufferedBlockMgr::Block::num_rows</a></div><div class="ttdeci">int num_rows() const </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00157">buffered-block-mgr.h:157</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_afba6a87429b782e109a3f99ef25e2900"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#afba6a87429b782e109a3f99ef25e2900">impala::BufferedBlockMgr::FindBufferForBlock</a></div><div class="ttdeci">Status FindBufferForBlock(Block *block, bool *in_mem)</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00836">buffered-block-mgr.cc:836</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a1a67f888364fd4e95aca80801781f958"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a1a67f888364fd4e95aca80801781f958">impala::BufferedBlockMgr::initialized_</a></div><div class="ttdeci">bool initialized_</div><div class="ttdoc">If true, Init() has been called. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00521">buffered-block-mgr.h:521</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_af689303917eaaf85ce4ad0a44d6e6c43"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#af689303917eaaf85ce4ad0a44d6e6c43">impala::BufferedBlockMgr::max_block_size_</a></div><div class="ttdeci">const int64_t max_block_size_</div><div class="ttdoc">Size of the largest/default block in bytes. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00496">buffered-block-mgr.h:496</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_aab5f6ba25bab9147d3cc30c30943a26e"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#aab5f6ba25bab9147d3cc30c30943a26e">impala::BufferedBlockMgr::Block::client_local_</a></div><div class="ttdeci">bool client_local_</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00288">buffered-block-mgr.h:288</a></div></div>
<div class="ttc" id="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor_html"><div class="ttname"><a href="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor.html">impala::BufferedBlockMgr::BufferDescriptor</a></div><div class="ttdoc">Descriptor for a single memory buffer in the pool. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00395">buffered-block-mgr.h:395</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_ad4f1123a87993beb9355cacd8ad4368f"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#ad4f1123a87993beb9355cacd8ad4368f">impala::BufferedBlockMgr::total_pinned_buffers_</a></div><div class="ttdeci">int total_pinned_buffers_</div><div class="ttdoc">The total number of pinned buffers across all clients. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00527">buffered-block-mgr.h:527</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_ab67107d799775549a42f5be44c8b04d4"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#ab67107d799775549a42f5be44c8b04d4">impala::BufferedBlockMgr::integrity_check_timer_</a></div><div class="ttdeci">RuntimeProfile::Counter * integrity_check_timer_</div><div class="ttdoc">Time spent in disk spill integrity generation and checking. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00607">buffered-block-mgr.h:607</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_a7073784f40755a243b4b0feec3177989"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a7073784f40755a243b4b0feec3177989">impala::BufferedBlockMgr::Block::block_mgr_</a></div><div class="ttdeci">BufferedBlockMgr * block_mgr_</div><div class="ttdoc">Parent block manager object. Responsible for maintaining the state of the block. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00225">buffered-block-mgr.h:225</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a823f6e86cee0f174f0ad36c3d253b287"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a823f6e86cee0f174f0ad36c3d253b287">impala::BufferedBlockMgr::num_reserved_buffers_remaining</a></div><div class="ttdeci">int num_reserved_buffers_remaining(Client *client) const </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00518">buffered-block-mgr.cc:518</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_ab7d678eeb63832623e3028e379879af2"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#ab7d678eeb63832623e3028e379879af2">impala::BufferedBlockMgr::writes_issued</a></div><div class="ttdeci">int writes_issued() const </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00389">buffered-block-mgr.h:389</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a3cf3eda5223c4487cd54eb54aabace9f"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a3cf3eda5223c4487cd54eb54aabace9f">impala::BufferedBlockMgr::remaining_unreserved_buffers</a></div><div class="ttdeci">int64_t remaining_unreserved_buffers() const </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00227">buffered-block-mgr.cc:227</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a7f5db3ecfabd31a7111d13385e971979"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a7f5db3ecfabd31a7111d13385e971979">impala::BufferedBlockMgr::writes_issued_</a></div><div class="ttdeci">int writes_issued_</div><div class="ttdoc">Number of writes issued. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00610">buffered-block-mgr.h:610</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_ad13df5bfb8825411a1c2579879a35eab"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#ad13df5bfb8825411a1c2579879a35eab">impala::BufferedBlockMgr::buffer_available_cv_</a></div><div class="ttdeci">boost::condition_variable buffer_available_cv_</div><div class="ttdoc">Signal availability of free buffers. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00534">buffered-block-mgr.h:534</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_af603b95283cb5edcfc9a781a387bdb43"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#af603b95283cb5edcfc9a781a387bdb43">impala::BufferedBlockMgr::UnpinBlock</a></div><div class="ttdeci">Status UnpinBlock(Block *block)</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00618">buffered-block-mgr.cc:618</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a89d56650a9bc9238d92bebe8c1ef6d65"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a89d56650a9bc9238d92bebe8c1ef6d65">impala::BufferedBlockMgr::Cancel</a></div><div class="ttdeci">void Cancel()</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00359">buffered-block-mgr.cc:359</a></div></div>
<div class="ttc" id="expr-benchmark_8cc_html_ad327327fa716227ff7993880cbc4698f"><div class="ttname"><a href="expr-benchmark_8cc.html#ad327327fa716227ff7993880cbc4698f">tracker</a></div><div class="ttdeci">MemTracker tracker</div><div class="ttdef"><b>Definition:</b> <a href="expr-benchmark_8cc_source.html#l00090">expr-benchmark.cc:90</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a56f3200d738096167c3e6a50d077ced8"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a56f3200d738096167c3e6a50d077ced8">impala::BufferedBlockMgr::MemLimitTooLowError</a></div><div class="ttdeci">Status MemLimitTooLowError(Client *client)</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00369">buffered-block-mgr.cc:369</a></div></div>
<div class="ttc" id="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor_html_ab4f7b471c13eb610043ab14d690f05d8"><div class="ttname"><a href="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor.html#ab4f7b471c13eb610043ab14d690f05d8">impala::BufferedBlockMgr::BufferDescriptor::all_buffers_it</a></div><div class="ttdeci">std::list&lt; BufferDescriptor * &gt;::iterator all_buffers_it</div><div class="ttdoc">Iterator into all_io_buffers_ for this buffer. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00406">buffered-block-mgr.h:406</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_a3cfb659c9d42d3244a5ad364ae429f65"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a3cfb659c9d42d3244a5ad364ae429f65">impala::BufferedBlockMgr::Block::write_range_</a></div><div class="ttdeci">DiskIoMgr::WriteRange * write_range_</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00236">buffered-block-mgr.h:236</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html">impala::BufferedBlockMgr</a></div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00092">buffered-block-mgr.h:92</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a09e13d36c3908c8f988ba5564f63d70b"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a09e13d36c3908c8f988ba5564f63d70b">impala::BufferedBlockMgr::TransferBuffer</a></div><div class="ttdeci">Status TransferBuffer(Block *dst, Block *src, bool unpin)</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00440">buffered-block-mgr.cc:440</a></div></div>
<div class="ttc" id="classimpala_1_1TmpFileMgr_html_ab5e3a97e13617b79896eab51b525779d"><div class="ttname"><a href="classimpala_1_1TmpFileMgr.html#ab5e3a97e13617b79896eab51b525779d">impala::TmpFileMgr::num_tmp_devices</a></div><div class="ttdeci">static int num_tmp_devices()</div><div class="ttdef"><b>Definition:</b> <a href="tmp-file-mgr_8h_source.html#l00087">tmp-file-mgr.h:87</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_a1d46ffe7b416a949b6fdb6e7828c3301"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a1d46ffe7b416a949b6fdb6e7828c3301">impala::BufferedBlockMgr::Block::Pin</a></div><div class="ttdeci">Status Pin(bool *pinned, Block *release_block=NULL, bool unpin=true)</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00122">buffered-block-mgr.cc:122</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a4cc209237769542b3b75810332f7e3fd"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a4cc209237769542b3b75810332f7e3fd">impala::BufferedBlockMgr::buffered_pin_counter_</a></div><div class="ttdeci">RuntimeProfile::Counter * buffered_pin_counter_</div><div class="ttdoc">Number of Pin() calls that did not require a disk read. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00589">buffered-block-mgr.h:589</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a3cd26d226927aebcabe057773793bcce"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a3cd26d226927aebcabe057773793bcce">impala::BufferedBlockMgr::available_allocated_buffers</a></div><div class="ttdeci">int available_allocated_buffers() const </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00380">buffered-block-mgr.h:380</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a7c9ada787430720de06f3eafc47af53e"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a7c9ada787430720de06f3eafc47af53e">impala::BufferedBlockMgr::mem_limit_counter_</a></div><div class="ttdeci">RuntimeProfile::Counter * mem_limit_counter_</div><div class="ttdoc">These have a fixed value for the lifetime of the manager and show memory usage. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00579">buffered-block-mgr.h:579</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_ae9e943bc0fae320e955500d0cd74a293"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#ae9e943bc0fae320e955500d0cd74a293">impala::BufferedBlockMgr::Block::Allocate</a></div><div class="ttdeci">T * Allocate(int size)</div><div class="ttdoc">Allocates the specified number of bytes from this block. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00160">buffered-block-mgr.h:160</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_ac6eaa4369a88f027db9e0e484fd158e6"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#ac6eaa4369a88f027db9e0e484fd158e6">impala::BufferedBlockMgr::Block::is_max_size</a></div><div class="ttdeci">bool is_max_size() const </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00198">buffered-block-mgr.h:198</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a6a00178efa6dc1eab5e8e76f7745dac8"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a6a00178efa6dc1eab5e8e76f7745dac8">impala::BufferedBlockMgr::DeleteOrUnpinBlock</a></div><div class="ttdeci">Status DeleteOrUnpinBlock(Block *block, bool unpin)</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00528">buffered-block-mgr.cc:528</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a6d133271046a0b51c118ee115faca19a"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a6d133271046a0b51c118ee115faca19a">impala::BufferedBlockMgr::get_tracker</a></div><div class="ttdeci">MemTracker * get_tracker(Client *client) const </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00522">buffered-block-mgr.cc:522</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a5fb791cacf01816b470330d014469f4e"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a5fb791cacf01816b470330d014469f4e">impala::BufferedBlockMgr::disable_spill_</a></div><div class="ttdeci">const bool disable_spill_</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00504">buffered-block-mgr.h:504</a></div></div>
<div class="ttc" id="classimpala_1_1SpinLock_html"><div class="ttname"><a href="classimpala_1_1SpinLock.html">impala::SpinLock</a></div><div class="ttdoc">Lightweight spinlock. </div><div class="ttdef"><b>Definition:</b> <a href="spinlock_8h_source.html#l00024">spinlock.h:24</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a9bee35b146080ab7239cc8aff02333c3"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a9bee35b146080ab7239cc8aff02333c3">impala::BufferedBlockMgr::Client</a></div><div class="ttdeci">friend struct Client</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00392">buffered-block-mgr.h:392</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a794a503c56450c23960e10144a3ee25f"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a794a503c56450c23960e10144a3ee25f">impala::BufferedBlockMgr::ReleaseMemory</a></div><div class="ttdeci">void ReleaseMemory(Client *client, int64_t size)</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00354">buffered-block-mgr.cc:354</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a342aa2bcf74c09ab57718e5fd8681f96"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a342aa2bcf74c09ab57718e5fd8681f96">impala::BufferedBlockMgr::num_pinned_buffers</a></div><div class="ttdeci">int num_pinned_buffers(Client *client) const </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00514">buffered-block-mgr.cc:514</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_ac4ddea92960294d8f764c2974fe273f9"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#ac4ddea92960294d8f764c2974fe273f9">impala::BufferedBlockMgr::GetNewBlock</a></div><div class="ttdeci">Status GetNewBlock(Client *client, Block *unpin_block, Block **block, int64_t len=-1)</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00382">buffered-block-mgr.cc:382</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a52bd5a104f158068d4627f8451dcde76"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a52bd5a104f158068d4627f8451dcde76">impala::BufferedBlockMgr::RegisterClient</a></div><div class="ttdeci">Status RegisterClient(int num_reserved_buffers, MemTracker *tracker, RuntimeState *state, Client **client)</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00235">buffered-block-mgr.cc:235</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_ad679d4aee028b2611a6c0cadb63d6ba5"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#ad679d4aee028b2611a6c0cadb63d6ba5">impala::BufferedBlockMgr::created_block_counter_</a></div><div class="ttdeci">RuntimeProfile::Counter * created_block_counter_</div><div class="ttdoc">Total number of blocks created. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00583">buffered-block-mgr.h:583</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a52695550d255f216048e336d91d526bc"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a52695550d255f216048e336d91d526bc">impala::BufferedBlockMgr::ConsumeMemory</a></div><div class="ttdeci">bool ConsumeMemory(Client *client, int64_t size)</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00278">buffered-block-mgr.cc:278</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_a225d09b43de0ec9aa6d727a054d034a7"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a225d09b43de0ec9aa6d727a054d034a7">impala::BufferedBlockMgr::Block::Init</a></div><div class="ttdeci">void Init()</div><div class="ttdoc">Initialize the state of a block and set the number of bytes allocated to 0. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00134">buffered-block-mgr.cc:134</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_ac6e6d613d4ed039d310d789ead20e231"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#ac6e6d613d4ed039d310d789ead20e231">impala::BufferedBlockMgr::max_block_size</a></div><div class="ttdeci">int64_t max_block_size() const </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00386">buffered-block-mgr.h:386</a></div></div>
<div class="ttc" id="structimpala_1_1BufferedBlockMgr_1_1Client_html"><div class="ttname"><a href="structimpala_1_1BufferedBlockMgr_1_1Client.html">impala::BufferedBlockMgr::Client</a></div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00045">buffered-block-mgr.cc:45</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_ad30d1250c262dd05e6090b37d4af35f2"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#ad30d1250c262dd05e6090b37d4af35f2">impala::BufferedBlockMgr::disk_read_timer_</a></div><div class="ttdeci">RuntimeProfile::Counter * disk_read_timer_</div><div class="ttdoc">Time taken for disk reads. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00592">buffered-block-mgr.h:592</a></div></div>
<div class="ttc" id="classimpala_1_1ObjectPool_html"><div class="ttname"><a href="classimpala_1_1ObjectPool.html">impala::ObjectPool</a></div><div class="ttdef"><b>Definition:</b> <a href="object-pool_8h_source.html#l00030">object-pool.h:30</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_a65ec47fa107545f44e0088bec963aeab"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a65ec47fa107545f44e0088bec963aeab">impala::BufferedBlockMgr::Block::iv_</a></div><div class="ttdeci">uint8_t iv_[AES_BLOCK_SIZE]</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00259">buffered-block-mgr.h:259</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_a5da55f7a691c542a208af013fe5e7306"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a5da55f7a691c542a208af013fe5e7306">impala::BufferedBlockMgr::Block::write_complete_cv_</a></div><div class="ttdeci">boost::condition_variable write_complete_cv_</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00283">buffered-block-mgr.h:283</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a6bfcfda8f2e29c07a4f050a6c07fd808"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a6bfcfda8f2e29c07a4f050a6c07fd808">impala::BufferedBlockMgr::block_write_threshold_</a></div><div class="ttdeci">const int block_write_threshold_</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00500">buffered-block-mgr.h:500</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a3b9871b3b2a381b5ecbbb37d7144b612"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a3b9871b3b2a381b5ecbbb37d7144b612">impala::BufferedBlockMgr::buffer_wait_timer_</a></div><div class="ttdeci">RuntimeProfile::Counter * buffer_wait_timer_</div><div class="ttdoc">Time spent waiting for a free buffer. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00595">buffered-block-mgr.h:595</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a7c5d8f0b89fabd62f3fc640f94643948"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a7c5d8f0b89fabd62f3fc640f94643948">impala::BufferedBlockMgr::encryption_timer_</a></div><div class="ttdeci">RuntimeProfile::Counter * encryption_timer_</div><div class="ttdoc">Time spent in disk spill encryption and decryption. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00604">buffered-block-mgr.h:604</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a0f71a0b57195f21a0b24073df9cb8342"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a0f71a0b57195f21a0b24073df9cb8342">impala::BufferedBlockMgr::BufferedBlockMgr</a></div><div class="ttdeci">BufferedBlockMgr(RuntimeState *state, int64_t block_size)</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00182">buffered-block-mgr.cc:182</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_ae1ee9f87bdd38df1dfcecf8ba1b2fc26"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#ae1ee9f87bdd38df1dfcecf8ba1b2fc26">impala::BufferedBlockMgr::Block::key_</a></div><div class="ttdeci">uint8_t key_[32]</div><div class="ttdoc">If encryption_ is on, a AES 256-bit key. Regenerated on each write. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00250">buffered-block-mgr.h:250</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a4477cc5ba95e9952329bb67c15585556"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a4477cc5ba95e9952329bb67c15585556">impala::BufferedBlockMgr::GetNumReservedBlocks</a></div><div class="ttdeci">static int GetNumReservedBlocks()</div><div class="ttdoc">Return the number of blocks a block manager will reserve for its I/O buffers. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00331">buffered-block-mgr.h:331</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_ace9778913ab978a887b7f7092841f75f"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#ace9778913ab978a887b7f7092841f75f">impala::BufferedBlockMgr::Block::num_rows_</a></div><div class="ttdeci">int num_rows_</div><div class="ttdoc">Number of rows in this block. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00242">buffered-block-mgr.h:242</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_aeca62eb216d7c466faa19926b2a6aa3b"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#aeca62eb216d7c466faa19926b2a6aa3b">impala::BufferedBlockMgr::Block::is_pinned_</a></div><div class="ttdeci">bool is_pinned_</div><div class="ttdoc">is_pinned_ is true while the block is pinned by a client. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00270">buffered-block-mgr.h:270</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_a678a5f46ff6c1f21cd6409c44fd8e52d"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a678a5f46ff6c1f21cd6409c44fd8e52d">impala::BufferedBlockMgr::Block::is_pinned</a></div><div class="ttdeci">bool is_pinned() const </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00203">buffered-block-mgr.h:203</a></div></div>
<div class="ttc" id="classimpala_1_1RuntimeProfile_1_1Counter_html"><div class="ttname"><a href="classimpala_1_1RuntimeProfile_1_1Counter.html">impala::RuntimeProfile::Counter</a></div><div class="ttdef"><b>Definition:</b> <a href="runtime-profile_8h_source.html#l00085">runtime-profile.h:85</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_ae78494b85f739b709f17404b31cce793"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#ae78494b85f739b709f17404b31cce793">impala::BufferedBlockMgr::ClearTmpReservation</a></div><div class="ttdeci">void ClearTmpReservation(Client *client)</div><div class="ttdoc">Sets tmp reservation to 0 on this client. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00272">buffered-block-mgr.cc:272</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a871bf9c1ca694f278d16af94bd6dd9a7"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a871bf9c1ca694f278d16af94bd6dd9a7">impala::BufferedBlockMgr::unfullfilled_reserved_buffers_</a></div><div class="ttdeci">int unfullfilled_reserved_buffers_</div><div class="ttdoc">The total number of reserved buffers across all clients that are not pinned. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00524">buffered-block-mgr.h:524</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_af4157a6d2c9c4541b172ff653ce55d7b"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#af4157a6d2c9c4541b172ff653ce55d7b">impala::BufferedBlockMgr::profile</a></div><div class="ttdeci">RuntimeProfile * profile()</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00388">buffered-block-mgr.h:388</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_aaaa53b664c5ec1265c89b25afd70aa04"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#aaaa53b664c5ec1265c89b25afd70aa04">impala::BufferedBlockMgr::is_cancelled_</a></div><div class="ttdeci">bool is_cancelled_</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00573">buffered-block-mgr.h:573</a></div></div>
<div class="ttc" id="disk-io-mgr_8h_html"><div class="ttname"><a href="disk-io-mgr_8h.html">disk-io-mgr.h</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_a0988f68d7a28513af7c87a14b9494d7f"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a0988f68d7a28513af7c87a14b9494d7f">impala::BufferedBlockMgr::Block::buffer_desc_</a></div><div class="ttdeci">BufferDescriptor * buffer_desc_</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00222">buffered-block-mgr.h:222</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_a05732338103987ffd309abee740d56a8"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a05732338103987ffd309abee740d56a8">impala::BufferedBlockMgr::Block::BytesRemaining</a></div><div class="ttdeci">int BytesRemaining() const </div><div class="ttdoc">Return the number of remaining bytes that can be allocated in this block. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00168">buffered-block-mgr.h:168</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html">impala::BufferedBlockMgr::Block</a></div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00136">buffered-block-mgr.h:136</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a55327b51166c1dced4425ecdf1b93658"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a55327b51166c1dced4425ecdf1b93658">impala::BufferedBlockMgr::non_local_outstanding_writes_</a></div><div class="ttdeci">int non_local_outstanding_writes_</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00531">buffered-block-mgr.h:531</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a65cb8755b19bbfb34a1e0f6d1a4fc8e0"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a65cb8755b19bbfb34a1e0f6d1a4fc8e0">impala::BufferedBlockMgr::~BufferedBlockMgr</a></div><div class="ttdeci">~BufferedBlockMgr()</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00481">buffered-block-mgr.cc:481</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a25a5078b6ff96b4bc78dd59ebe447919"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a25a5078b6ff96b4bc78dd59ebe447919">impala::BufferedBlockMgr::ClearReservations</a></div><div class="ttdeci">void ClearReservations(Client *client)</div><div class="ttdoc">Clears all reservations for this client. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00244">buffered-block-mgr.cc:244</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_a9e27fd2bf12a0f46eaea29de635b231a"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a9e27fd2bf12a0f46eaea29de635b231a">impala::BufferedBlockMgr::Block::valid_data_len</a></div><div class="ttdeci">int64_t valid_data_len() const </div><div class="ttdoc">Return the number of bytes allocated in this block. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00187">buffered-block-mgr.h:187</a></div></div>
<div class="ttc" id="classimpala_1_1Status_html"><div class="ttname"><a href="classimpala_1_1Status.html">impala::Status</a></div><div class="ttdef"><b>Definition:</b> <a href="status_8h_source.html#l00081">status.h:81</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a3727560d3056edc8f0d6f67c30b18a8a"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a3727560d3056edc8f0d6f67c30b18a8a">impala::BufferedBlockMgr::io_mgr_</a></div><div class="ttdeci">DiskIoMgr * io_mgr_</div><div class="ttdoc">DiskIoMgr handles to read and write blocks. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00567">buffered-block-mgr.h:567</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_aff37530220851e59a6483912ab2c475f"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#aff37530220851e59a6483912ab2c475f">impala::BufferedBlockMgr::encryption_</a></div><div class="ttdeci">const bool encryption_</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00641">buffered-block-mgr.h:641</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a555fb8f4857bdab650895b4468332c53"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a555fb8f4857bdab650895b4468332c53">impala::BufferedBlockMgr::profile_</a></div><div class="ttdeci">boost::scoped_ptr&lt; RuntimeProfile &gt; profile_</div><div class="ttdoc">Counters and timers to track behavior. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00576">buffered-block-mgr.h:576</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_acc28055c6976b7b7979572f7f2554065"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#acc28055c6976b7b7979572f7f2554065">impala::BufferedBlockMgr::Block::Block</a></div><div class="ttdeci">Block(BufferedBlockMgr *block_mgr)</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00113">buffered-block-mgr.cc:113</a></div></div>
<div class="ttc" id="classimpala_1_1DiskIoMgr_1_1RequestContext_html"><div class="ttname"><a href="classimpala_1_1DiskIoMgr_1_1RequestContext.html">impala::DiskIoMgr::RequestContext</a></div><div class="ttdef"><b>Definition:</b> <a href="disk-io-mgr-internal_8h_source.html#l00122">disk-io-mgr-internal.h:122</a></div></div>
<div class="ttc" id="classimpala_1_1RuntimeState_html"><div class="ttname"><a href="classimpala_1_1RuntimeState.html">impala::RuntimeState</a></div><div class="ttdef"><b>Definition:</b> <a href="runtime-state_8h_source.html#l00069">runtime-state.h:69</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a337788b14042ad95cbb60d266c7657b6"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a337788b14042ad95cbb60d266c7657b6">impala::BufferedBlockMgr::EncryptDone</a></div><div class="ttdeci">void EncryptDone(Block *block)</div><div class="ttdoc">Deallocates temporary buffer alloced in Encrypt(). </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l01233">buffered-block-mgr.cc:1233</a></div></div>
<div class="ttc" id="classimpala_1_1DiskIoMgr_1_1WriteRange_html"><div class="ttname"><a href="classimpala_1_1DiskIoMgr_1_1WriteRange.html">impala::DiskIoMgr::WriteRange</a></div><div class="ttdef"><b>Definition:</b> <a href="disk-io-mgr_8h_source.html#l00455">disk-io-mgr.h:455</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a943168d8980260c3dd562a36a3b483b1"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a943168d8980260c3dd562a36a3b483b1">impala::BufferedBlockMgr::unused_blocks_</a></div><div class="ttdeci">InternalQueue&lt; Block &gt; unused_blocks_</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00546">buffered-block-mgr.h:546</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_ac5fe211cdbf31b5fb3bc8c428c8b780f"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#ac5fe211cdbf31b5fb3bc8c428c8b780f">impala::BufferedBlockMgr::DebugInternal</a></div><div class="ttdeci">std::string DebugInternal() const </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l01090">buffered-block-mgr.cc:1090</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a76ef041b360fb6146c687b3e479546e1"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a76ef041b360fb6146c687b3e479546e1">impala::BufferedBlockMgr::Create</a></div><div class="ttdeci">static Status Create(RuntimeState *state, MemTracker *parent, RuntimeProfile *profile, int64_t mem_limit, int64_t buffer_size, boost::shared_ptr&lt; BufferedBlockMgr &gt; *block_mgr)</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00199">buffered-block-mgr.cc:199</a></div></div>
<div class="ttc" id="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor_html_a58a79fd29205d40c1bbf391d2e275c8d"><div class="ttname"><a href="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor.html#a58a79fd29205d40c1bbf391d2e275c8d">impala::BufferedBlockMgr::BufferDescriptor::BufferDescriptor</a></div><div class="ttdeci">BufferDescriptor(uint8_t *buf, int64_t len)</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00408">buffered-block-mgr.h:408</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_aa53f27958871d6fb11225fac7da8a2de"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#aa53f27958871d6fb11225fac7da8a2de">impala::BufferedBlockMgr::Block::DebugString</a></div><div class="ttdeci">std::string DebugString() const </div><div class="ttdoc">Debug helper method to print the state of a block. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00168">buffered-block-mgr.cc:168</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_abf498dbd8d39e17a7a6009093e10a21f"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#abf498dbd8d39e17a7a6009093e10a21f">impala::BufferedBlockMgr::Block::valid_data_len_</a></div><div class="ttdeci">int64_t valid_data_len_</div><div class="ttdoc">Length of valid (i.e. allocated) data within the block. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00239">buffered-block-mgr.h:239</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_aed8676a9964f72975b1f5b54983d2b03"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#aed8676a9964f72975b1f5b54983d2b03">impala::BufferedBlockMgr::BlockMgrsMap</a></div><div class="ttdeci">boost::unordered_map&lt; TUniqueId, boost::weak_ptr&lt; BufferedBlockMgr &gt; &gt; BlockMgrsMap</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00620">buffered-block-mgr.h:620</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a2c23e2921578ef202e7430a0375bfca8"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a2c23e2921578ef202e7430a0375bfca8">impala::BufferedBlockMgr::available_buffers</a></div><div class="ttdeci">int64_t available_buffers(Client *client) const </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00221">buffered-block-mgr.cc:221</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_a9a7f4c0ec69a48806af60dbe5457837f"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a9a7f4c0ec69a48806af60dbe5457837f">impala::BufferedBlockMgr::Block::Validate</a></div><div class="ttdeci">bool Validate() const </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00144">buffered-block-mgr.cc:144</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_aa4ef162071abe0ae88c47e58a64e260b"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#aa4ef162071abe0ae88c47e58a64e260b">impala::BufferedBlockMgr::obj_pool_</a></div><div class="ttdeci">ObjectPool obj_pool_</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00508">buffered-block-mgr.h:508</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_aed64a83575d26aa3eccd67d4d49ca036"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#aed64a83575d26aa3eccd67d4d49ca036">impala::BufferedBlockMgr::Encrypt</a></div><div class="ttdeci">Status Encrypt(Block *block, uint8_t **outbuf)</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l01183">buffered-block-mgr.cc:1183</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_a1678b167da24899ad4adbb2a0b4a286b"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a1678b167da24899ad4adbb2a0b4a286b">impala::BufferedBlockMgr::Block::hash_</a></div><div class="ttdeci">uint8_t hash_[SHA256_DIGEST_LENGTH]</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00263">buffered-block-mgr.h:263</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_ad77e0ded5dd0baa97ec5aca3be0c4857"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#ad77e0ded5dd0baa97ec5aca3be0c4857">impala::BufferedBlockMgr::free_io_buffers_</a></div><div class="ttdeci">InternalQueue&lt; BufferDescriptor &gt; free_io_buffers_</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00553">buffered-block-mgr.h:553</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_a98ac414f60e71a25c45ec2526c5bcf87"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a98ac414f60e71a25c45ec2526c5bcf87">impala::BufferedBlockMgr::Block::Delete</a></div><div class="ttdeci">Status Delete()</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00130">buffered-block-mgr.cc:130</a></div></div>
<div class="ttc" id="classimpala_1_1MemTracker_html"><div class="ttname"><a href="classimpala_1_1MemTracker.html">impala::MemTracker</a></div><div class="ttdoc">This class is thread-safe. </div><div class="ttdef"><b>Definition:</b> <a href="mem-tracker_8h_source.html#l00061">mem-tracker.h:61</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a4cb1e195174c2f3fded3cdae639af303"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a4cb1e195174c2f3fded3cdae639af303">impala::BufferedBlockMgr::num_free_buffers</a></div><div class="ttdeci">int num_free_buffers() const </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00381">buffered-block-mgr.h:381</a></div></div>
<div class="ttc" id="classimpala_1_1DiskIoMgr_html"><div class="ttname"><a href="classimpala_1_1DiskIoMgr.html">impala::DiskIoMgr</a></div><div class="ttdef"><b>Definition:</b> <a href="disk-io-mgr_8h_source.html#l00188">disk-io-mgr.h:188</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a7f7694664dd89a64c9e036bdcdc078e2"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a7f7694664dd89a64c9e036bdcdc078e2">impala::BufferedBlockMgr::check_integrity_</a></div><div class="ttdeci">const bool check_integrity_</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00647">buffered-block-mgr.h:647</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a0cfc416ca77efffdbd943fabd773d706"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a0cfc416ca77efffdbd943fabd773d706">impala::BufferedBlockMgr::GetUnusedBlock</a></div><div class="ttdeci">Block * GetUnusedBlock(Client *client)</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00979">buffered-block-mgr.cc:979</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a4b942031de4227fa6abc6d6b253dbc5b"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a4b942031de4227fa6abc6d6b253dbc5b">impala::BufferedBlockMgr::next_block_index_</a></div><div class="ttdeci">int next_block_index_</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00564">buffered-block-mgr.h:564</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a41fc197d9b01618edc9893f400027e14"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a41fc197d9b01618edc9893f400027e14">impala::BufferedBlockMgr::Decrypt</a></div><div class="ttdeci">Status Decrypt(Block *block)</div><div class="ttdoc">Decrypts the contents of buffer() in place. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l01239">buffered-block-mgr.cc:1239</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a838b49f1c3c947a078d500baf6d93ae5"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a838b49f1c3c947a078d500baf6d93ae5">impala::BufferedBlockMgr::WriteUnpinnedBlock</a></div><div class="ttdeci">Status WriteUnpinnedBlock(Block *block)</div><div class="ttdoc">Issues the write for this block to the DiskIoMgr. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00659">buffered-block-mgr.cc:659</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a784e8ae0194fbf99b7f16731ef317711"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a784e8ae0194fbf99b7f16731ef317711">impala::BufferedBlockMgr::VerifyHash</a></div><div class="ttdeci">Status VerifyHash(Block *block)</div><div class="ttdoc">Verifies that the contents of buffer() match those that were set by SetHash() </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l01290">buffered-block-mgr.cc:1290</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_aa9b3d1904de97e5829b8d8fe880ba506"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#aa9b3d1904de97e5829b8d8fe880ba506">impala::BufferedBlockMgr::TryAcquireTmpReservation</a></div><div class="ttdeci">bool TryAcquireTmpReservation(Client *client, int num_buffers)</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00257">buffered-block-mgr.cc:257</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a9e66c366444d815acc70271ee38bdd19"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a9e66c366444d815acc70271ee38bdd19">impala::BufferedBlockMgr::lock_</a></div><div class="ttdeci">boost::mutex lock_</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00518">buffered-block-mgr.h:518</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a5bbad02d3a6e0184cad5d8682ece8dae"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a5bbad02d3a6e0184cad5d8682ece8dae">impala::BufferedBlockMgr::Init</a></div><div class="ttdeci">void Init(DiskIoMgr *io_mgr, RuntimeProfile *profile, MemTracker *parent_tracker, int64_t mem_limit)</div><div class="ttdoc">Initializes the block mgr. Idempotent and thread-safe. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l01105">buffered-block-mgr.cc:1105</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_a5089ae246e8e767b5b770629abee3a19"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a5089ae246e8e767b5b770629abee3a19">impala::BufferedBlockMgr::Block::is_deleted_</a></div><div class="ttdeci">bool is_deleted_</div><div class="ttdoc">True if the block is deleted by the client. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00277">buffered-block-mgr.h:277</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a99ac55721ceae0175edb3c44c50d8550"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a99ac55721ceae0175edb3c44c50d8550">impala::BufferedBlockMgr::FindBuffer</a></div><div class="ttdeci">Status FindBuffer(boost::unique_lock&lt; boost::mutex &gt; &amp;lock, BufferDescriptor **buffer)</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00936">buffered-block-mgr.cc:936</a></div></div>
<div class="ttc" id="classimpala_1_1RuntimeProfile_html"><div class="ttname"><a href="classimpala_1_1RuntimeProfile.html">impala::RuntimeProfile</a></div><div class="ttdef"><b>Definition:</b> <a href="runtime-profile_8h_source.html#l00083">runtime-profile.h:83</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a0dc5bc091c0ec45b24ae37e2da2bab5d"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a0dc5bc091c0ec45b24ae37e2da2bab5d">impala::BufferedBlockMgr::static_block_mgrs_lock_</a></div><div class="ttdeci">static SpinLock static_block_mgrs_lock_</div><div class="ttdoc">Protects query_to_block_mgrs_. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00613">buffered-block-mgr.h:613</a></div></div>
<div class="ttc" id="classimpala_1_1InternalQueue_html"><div class="ttname"><a href="classimpala_1_1InternalQueue.html">impala::InternalQueue</a></div><div class="ttdoc">T must be a subclass of InternalQueue::Node. </div><div class="ttdef"><b>Definition:</b> <a href="internal-queue_8h_source.html#l00040">internal-queue.h:40</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_ae3ca8baeb5e41ff28afbabc22d6d7e29"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#ae3ca8baeb5e41ff28afbabc22d6d7e29">impala::BufferedBlockMgr::tmp_files_</a></div><div class="ttdeci">boost::ptr_vector&lt; TmpFileMgr::File &gt; tmp_files_</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00560">buffered-block-mgr.h:560</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_af101e58c9293bfd555da560bf6108f4c"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#af101e58c9293bfd555da560bf6108f4c">impala::BufferedBlockMgr::Block::client_</a></div><div class="ttdeci">Client * client_</div><div class="ttdoc">The client that owns this block. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00228">buffered-block-mgr.h:228</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a3fa292d642eacb664388d07792294f9b"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a3fa292d642eacb664388d07792294f9b">impala::BufferedBlockMgr::io_request_context_</a></div><div class="ttdeci">DiskIoMgr::RequestContext * io_request_context_</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00568">buffered-block-mgr.h:568</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a3c5fc9a51a790dba1ed1ff38af9e9ce7"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a3c5fc9a51a790dba1ed1ff38af9e9ce7">impala::BufferedBlockMgr::InitTmpFiles</a></div><div class="ttdeci">Status InitTmpFiles()</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l01147">buffered-block-mgr.cc:1147</a></div></div>
<div class="ttc" id="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor_html_af819b22b3d443190de417b94a5e93dd6"><div class="ttname"><a href="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor.html#af819b22b3d443190de417b94a5e93dd6">impala::BufferedBlockMgr::BufferDescriptor::block</a></div><div class="ttdeci">Block * block</div><div class="ttdoc">Block that this buffer is assigned to. May be NULL. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00403">buffered-block-mgr.h:403</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a897cbbbcebeb8e8399d03053908030fe"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a897cbbbcebeb8e8399d03053908030fe">impala::BufferedBlockMgr::PinBlock</a></div><div class="ttdeci">Status PinBlock(Block *block, bool *pinned, Block *src, bool unpin)</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00536">buffered-block-mgr.cc:536</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a4f58a54274252c7bb3c54e2317630933"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a4f58a54274252c7bb3c54e2317630933">impala::BufferedBlockMgr::WriteComplete</a></div><div class="ttdeci">void WriteComplete(Block *block, const Status &amp;write_status)</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00715">buffered-block-mgr.cc:715</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a267ba7ea2b63d43fc37d5db79ceda533"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a267ba7ea2b63d43fc37d5db79ceda533">impala::BufferedBlockMgr::recycled_blocks_counter_</a></div><div class="ttdeci">RuntimeProfile::Counter * recycled_blocks_counter_</div><div class="ttdoc">Number of deleted blocks reused. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00586">buffered-block-mgr.h:586</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a1dba9cde4a03d0d395bcb59345db7248"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a1dba9cde4a03d0d395bcb59345db7248">impala::BufferedBlockMgr::DebugString</a></div><div class="ttdeci">std::string DebugString(Client *client=NULL)</div><div class="ttdoc">Dumps block mgr state. Grabs lock. If client is not NULL, also dumps its state. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l01082">buffered-block-mgr.cc:1082</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_a3beba257e3649515dd06d31a42667d5e"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a3beba257e3649515dd06d31a42667d5e">impala::BufferedBlockMgr::Block::buffer</a></div><div class="ttdeci">uint8_t * buffer() const </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00181">buffered-block-mgr.h:181</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_acb4438f9c5fca33d44facd350ada51ff"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#acb4438f9c5fca33d44facd350ada51ff">impala::BufferedBlockMgr::block_size_counter_</a></div><div class="ttdeci">RuntimeProfile::Counter * block_size_counter_</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00580">buffered-block-mgr.h:580</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a19190fc46c5f1038d816b7e09581c9f6"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a19190fc46c5f1038d816b7e09581c9f6">impala::BufferedBlockMgr::bytes_allocated</a></div><div class="ttdeci">int64_t bytes_allocated() const </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00510">buffered-block-mgr.cc:510</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a7df535bed5b54f21c6b2d7478277f3f5"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a7df535bed5b54f21c6b2d7478277f3f5">impala::BufferedBlockMgr::SetHash</a></div><div class="ttdeci">void SetHash(Block *block)</div><div class="ttdoc">Takes a cryptographic hash of the data and sets hash_ with it. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l01275">buffered-block-mgr.cc:1275</a></div></div>
<div class="ttc" id="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor_html_a37bccbbfe3643993f09cebfe2bfdd3c7"><div class="ttname"><a href="structimpala_1_1BufferedBlockMgr_1_1BufferDescriptor.html#a37bccbbfe3643993f09cebfe2bfdd3c7">impala::BufferedBlockMgr::BufferDescriptor::len</a></div><div class="ttdeci">int64_t len</div><div class="ttdoc">Length of the buffer. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00400">buffered-block-mgr.h:400</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_a03ad00fa7c792f4fc85ba5e573a30369"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a03ad00fa7c792f4fc85ba5e573a30369">impala::BufferedBlockMgr::Block::Unpin</a></div><div class="ttdeci">Status Unpin()</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00126">buffered-block-mgr.cc:126</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_ac215127b6c5f5ea3f80500ced986d5ae"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#ac215127b6c5f5ea3f80500ced986d5ae">impala::BufferedBlockMgr::mem_tracker_</a></div><div class="ttdeci">boost::scoped_ptr&lt; MemTracker &gt; mem_tracker_</div><div class="ttdoc">Track buffers allocated by the block manager. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00511">buffered-block-mgr.h:511</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a4da642021a8ff01b90040b228cba10bd"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a4da642021a8ff01b90040b228cba10bd">impala::BufferedBlockMgr::query_id_</a></div><div class="ttdeci">const TUniqueId query_id_</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00506">buffered-block-mgr.h:506</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a9e3f63dec76e5f906fd50a011263988f"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a9e3f63dec76e5f906fd50a011263988f">impala::BufferedBlockMgr::WriteUnpinnedBlocks</a></div><div class="ttdeci">Status WriteUnpinnedBlocks()</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00643">buffered-block-mgr.cc:643</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_a827d453cd204c0ec92964d1cecf7369b"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a827d453cd204c0ec92964d1cecf7369b">impala::BufferedBlockMgr::Block::in_write_</a></div><div class="ttdeci">bool in_write_</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00274">buffered-block-mgr.h:274</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a57538dda5ea4f7a2a43a5a2fbaf63bca"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a57538dda5ea4f7a2a43a5a2fbaf63bca">impala::BufferedBlockMgr::ReturnUnusedBlock</a></div><div class="ttdeci">void ReturnUnusedBlock(Block *block)</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00828">buffered-block-mgr.cc:828</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_aeb7806c5773497699e3d880a3770a140"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#aeb7806c5773497699e3d880a3770a140">impala::BufferedBlockMgr::outstanding_writes_counter_</a></div><div class="ttdeci">RuntimeProfile::Counter * outstanding_writes_counter_</div><div class="ttdoc">Number of writes outstanding (issued but not completed). </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00601">buffered-block-mgr.h:601</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_acf728961e82fb837311be3143ac369e0"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#acf728961e82fb837311be3143ac369e0">impala::BufferedBlockMgr::all_io_buffers_</a></div><div class="ttdeci">std::list&lt; BufferDescriptor * &gt; all_io_buffers_</div><div class="ttdoc">All allocated io-sized buffers. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00556">buffered-block-mgr.h:556</a></div></div>
<div class="ttc" id="tmp-file-mgr_8h_html"><div class="ttname"><a href="tmp-file-mgr_8h.html">tmp-file-mgr.h</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_a19e6454922bcb1a9c8a1a0e4b0020076"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a19e6454922bcb1a9c8a1a0e4b0020076">impala::BufferedBlockMgr::Block::buffer_len</a></div><div class="ttdeci">int64_t buffer_len() const </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00191">buffered-block-mgr.h:191</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_a7edf1456f8b8387c576894223bcba51a"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a7edf1456f8b8387c576894223bcba51a">impala::BufferedBlockMgr::Block::encrypted_write_buffer_</a></div><div class="ttdeci">boost::scoped_array&lt; uint8_t &gt; encrypted_write_buffer_</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00247">buffered-block-mgr.h:247</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_af2ad74e4f63345951f3d9538d8e35307"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#af2ad74e4f63345951f3d9538d8e35307">impala::BufferedBlockMgr::bytes_written_counter_</a></div><div class="ttdeci">RuntimeProfile::Counter * bytes_written_counter_</div><div class="ttdoc">Number of bytes written to disk (includes writes still queued in the IO manager). ...</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00598">buffered-block-mgr.h:598</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_acee7e11e770fcceb10f9774a19aa0da3"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#acee7e11e770fcceb10f9774a19aa0da3">impala::BufferedBlockMgr::unpinned_blocks_</a></div><div class="ttdeci">InternalQueue&lt; Block &gt; unpinned_blocks_</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00540">buffered-block-mgr.h:540</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_a99b13bc2126e2dc8badc46a569cfb8e5"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a99b13bc2126e2dc8badc46a569cfb8e5">impala::BufferedBlockMgr::Block::AddRow</a></div><div class="ttdeci">void AddRow()</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00156">buffered-block-mgr.h:156</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a87fe1fd37d2ee3599b8bbb81dc80aa2b"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a87fe1fd37d2ee3599b8bbb81dc80aa2b">impala::BufferedBlockMgr::DeleteBlock</a></div><div class="ttdeci">Status DeleteBlock(Block *block)</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00783">buffered-block-mgr.cc:783</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_1_1Block_html_a471d38f75ad1ef978ea60f31e391d47e"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr_1_1Block.html#a471d38f75ad1ef978ea60f31e391d47e">impala::BufferedBlockMgr::Block::ReturnAllocation</a></div><div class="ttdeci">void ReturnAllocation(int size)</div><div class="ttdoc">Return size bytes from the most recent allocation. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00174">buffered-block-mgr.h:174</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a6e3d9f82322d2dbec44a0d194ad579d7"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a6e3d9f82322d2dbec44a0d194ad579d7">impala::BufferedBlockMgr::Validate</a></div><div class="ttdeci">bool Validate() const </div><div class="ttdoc">Used to debug the state of the block manager. Lock must already be taken. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00995">buffered-block-mgr.cc:995</a></div></div>
<div class="ttc" id="classimpala_1_1BufferedBlockMgr_html_a2c0051cb9c4a7f374477f2e0bdfe50f5"><div class="ttname"><a href="classimpala_1_1BufferedBlockMgr.html#a2c0051cb9c4a7f374477f2e0bdfe50f5">impala::BufferedBlockMgr::query_to_block_mgrs_</a></div><div class="ttdeci">static BlockMgrsMap query_to_block_mgrs_</div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8h_source.html#l00621">buffered-block-mgr.h:621</a></div></div>
</div><!-- fragment --></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="dir_e5d120be6b5e8a44336cbfd013b25604.html">be</a></li><li class="navelem"><a class="el" href="dir_68cf7cafb51a962d5bc4848b83cab0de.html">src</a></li><li class="navelem"><a class="el" href="dir_1ef28ab5153adb64262182d038c65543.html">runtime</a></li><li class="navelem"><a class="el" href="buffered-block-mgr_8h.html">buffered-block-mgr.h</a></li>
<li class="footer">Generated on Thu May 7 2015 16:10:36 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>