| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> |
| <meta http-equiv="X-UA-Compatible" content="IE=11"/> |
| <meta name="generator" content="Doxygen 1.9.8"/> |
| <meta name="viewport" content="width=device-width, initial-scale=1"/> |
| <title>Paimon-cpp: /home/runner/work/paimon-cpp/paimon-cpp/include/paimon/utils/read_ahead_cache.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="search/search.css" rel="stylesheet" type="text/css"/> |
| <script type="text/javascript" src="search/searchdata.js"></script> |
| <script type="text/javascript" src="search/search.js"></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 id="projectrow"> |
| <td id="projectalign"> |
| <div id="projectname">Paimon-cpp |
| </div> |
| <div id="projectbrief">A high-performance C++ implementation of Apache Paimon</div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <!-- end header part --> |
| <!-- Generated by Doxygen 1.9.8 --> |
| <script type="text/javascript"> |
| /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ |
| var searchBox = new SearchBox("searchBox", "search/",'.html'); |
| /* @license-end */ |
| </script> |
| <script type="text/javascript" src="menudata.js"></script> |
| <script type="text/javascript" src="menu.js"></script> |
| <script type="text/javascript"> |
| /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ |
| $(function() { |
| initMenu('',true,false,'search.php','Search'); |
| $(document).ready(function() { init_search(); }); |
| }); |
| /* @license-end */ |
| </script> |
| <div id="main-nav"></div> |
| <script type="text/javascript"> |
| /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ |
| $(document).ready(function() { init_codefold(0); }); |
| /* @license-end */ |
| </script> |
| <!-- window showing the filter options --> |
| <div id="MSearchSelectWindow" |
| onmouseover="return searchBox.OnSearchSelectShow()" |
| onmouseout="return searchBox.OnSearchSelectHide()" |
| onkeydown="return searchBox.OnSearchSelectKey(event)"> |
| </div> |
| |
| <!-- iframe showing the search results (closed by default) --> |
| <div id="MSearchResultsWindow"> |
| <div id="MSearchResults"> |
| <div class="SRPage"> |
| <div id="SRIndex"> |
| <div id="SRResults"></div> |
| <div class="SRStatus" id="Loading">Loading...</div> |
| <div class="SRStatus" id="Searching">Searching...</div> |
| <div class="SRStatus" id="NoMatches">No Matches</div> |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| <div id="nav-path" class="navpath"> |
| <ul> |
| <li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_d5ce83a91c1ada980bd794a9f3314520.html">paimon</a></li><li class="navelem"><a class="el" href="dir_1585cef52ab3ac100252476d26968f2e.html">utils</a></li> </ul> |
| </div> |
| </div><!-- top --> |
| <div class="header"> |
| <div class="headertitle"><div class="title">read_ahead_cache.h</div></div> |
| </div><!--header--> |
| <div class="contents"> |
| <a href="read__ahead__cache_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/*</span></div> |
| <div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div> |
| <div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> * or more contributor license agreements. See the NOTICE file</span></div> |
| <div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"> * distributed with this work for additional information</span></div> |
| <div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment"> * regarding copyright ownership. The ASF licenses this file</span></div> |
| <div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div> |
| <div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment"> * "License"); you may not use this file except in compliance</span></div> |
| <div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment"> * with the License. You may obtain a copy of the License at</span></div> |
| <div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment"> *</span></div> |
| <div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</span></div> |
| <div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment"> *</span></div> |
| <div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div> |
| <div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment"> * software distributed under the License is distributed on an</span></div> |
| <div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div> |
| <div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment"> * KIND, either express or implied. See the License for the</span></div> |
| <div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment"> * specific language governing permissions and limitations</span></div> |
| <div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment"> * under the License.</span></div> |
| <div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="comment"> */</span></div> |
| <div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div> |
| <div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment">// Adapted from Apache ORC</span></div> |
| <div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="comment">// https://github.com/apache/orc/blob/main/c%2B%2B/src/io/Cache.hh</span></div> |
| <div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div> |
| <div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#pragma once</span></div> |
| <div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div> |
| <div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#include <cstdint></span></div> |
| <div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="preprocessor">#include <memory></span></div> |
| <div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor">#include <vector></span></div> |
| <div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div> |
| <div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor">#include "<a class="code" href="file__system_8h.html">paimon/fs/file_system.h</a>"</span></div> |
| <div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#include "<a class="code" href="bytes_8h.html">paimon/memory/bytes.h</a>"</span></div> |
| <div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#include "<a class="code" href="memory__pool_8h.html">paimon/memory/memory_pool.h</a>"</span></div> |
| <div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="preprocessor">#include "<a class="code" href="result_8h.html">paimon/result.h</a>"</span></div> |
| <div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="preprocessor">#include "<a class="code" href="status_8h.html">paimon/status.h</a>"</span></div> |
| <div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="preprocessor">#include "<a class="code" href="visibility_8h.html">paimon/visibility.h</a>"</span></div> |
| <div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div> |
| <div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacepaimon.html">paimon</a> {</div> |
| <div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div> |
| <div class="foldopen" id="foldopen00048" data-start="{" data-end="};"> |
| <div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="namespacepaimon.html#a2f09964ea85d5e9080c03c5073459784"> 48</a></span><span class="keyword">enum class</span> <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">PAIMON_EXPORT</a> <a class="code hl_enumeration" href="namespacepaimon.html#a2f09964ea85d5e9080c03c5073459784">PrefetchCacheMode</a> {</div> |
| <div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <a class="code hl_enumvalue" href="namespacepaimon.html#a2f09964ea85d5e9080c03c5073459784af3fc827ade4b968e50406496907ef962">ALWAYS</a> = 1,</div> |
| <div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <a class="code hl_enumvalue" href="namespacepaimon.html#a2f09964ea85d5e9080c03c5073459784af514ef9e88db83c632fb2f8482725b69">EXCLUDE_PREDICATE</a> = 2,</div> |
| <div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <a class="code hl_enumvalue" href="namespacepaimon.html#a2f09964ea85d5e9080c03c5073459784a60e587f21f56c15938e185b5e4c85d38">EXCLUDE_BITMAP</a> = 3,</div> |
| <div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <a class="code hl_enumvalue" href="namespacepaimon.html#a2f09964ea85d5e9080c03c5073459784a9b4209431cbe767b9614cb4ea2d37ba9">EXCLUDE_BITMAP_OR_PREDICATE</a> = 4,</div> |
| <div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <a class="code hl_enumvalue" href="namespacepaimon.html#a2f09964ea85d5e9080c03c5073459784a443475558f0168dff92ecde26b98ae5a">NEVER</a> = 5</div> |
| <div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span>};</div> |
| </div> |
| <div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div> |
| <div class="foldopen" id="foldopen00060" data-start="{" data-end="};"> |
| <div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="classpaimon_1_1_cache_config.html"> 60</a></span><span class="keyword">class </span><a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">PAIMON_EXPORT</a> <a class="code hl_class" href="classpaimon_1_1_cache_config.html">CacheConfig</a> {</div> |
| <div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">public</span>:</div> |
| <div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="classpaimon_1_1_cache_config.html#abb64363e13e9819aed2c5d1823954eb4"> 62</a></span> <a class="code hl_function" href="classpaimon_1_1_cache_config.html#abb64363e13e9819aed2c5d1823954eb4">CacheConfig</a>();</div> |
| <div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="classpaimon_1_1_cache_config.html#a8f89e497006b99032be4be2042c09b1a"> 63</a></span> <a class="code hl_function" href="classpaimon_1_1_cache_config.html#a8f89e497006b99032be4be2042c09b1a">CacheConfig</a>(<a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">buffer_size_limit</a>, <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">range_size_limit</a>, <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">hole_size_limit</a>,</div> |
| <div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">pre_buffer_limit</a>);</div> |
| <div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div> |
| <div class="foldopen" id="foldopen00067" data-start="{" data-end="}"> |
| <div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="classpaimon_1_1_cache_config.html#a8636d32a2a4fce1d649dceea9a8a6863"> 67</a></span> <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> <a class="code hl_function" href="classpaimon_1_1_cache_config.html#a8636d32a2a4fce1d649dceea9a8a6863">GetBufferSizeLimit</a>()<span class="keyword"> const </span>{</div> |
| <div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordflow">return</span> buffer_size_limit_;</div> |
| <div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> }</div> |
| </div> |
| <div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div> |
| <div class="foldopen" id="foldopen00072" data-start="{" data-end="}"> |
| <div class="line"><a id="l00072" name="l00072"></a><span class="lineno"><a class="line" href="classpaimon_1_1_cache_config.html#aab298e451827847913e0ec7dd7bb4aba"> 72</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classpaimon_1_1_cache_config.html#aab298e451827847913e0ec7dd7bb4aba">SetBufferSizeLimit</a>(<a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">buffer_size_limit</a>) {</div> |
| <div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> buffer_size_limit_ = <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">buffer_size_limit</a>;</div> |
| <div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> }</div> |
| </div> |
| <div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> </div> |
| <div class="foldopen" id="foldopen00077" data-start="{" data-end="}"> |
| <div class="line"><a id="l00077" name="l00077"></a><span class="lineno"><a class="line" href="classpaimon_1_1_cache_config.html#a6ac21b106189c1b2b1a88ebb43b0d69e"> 77</a></span> <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> <a class="code hl_function" href="classpaimon_1_1_cache_config.html#a6ac21b106189c1b2b1a88ebb43b0d69e">GetRangeSizeLimit</a>()<span class="keyword"> const </span>{</div> |
| <div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="keywordflow">return</span> range_size_limit_;</div> |
| <div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> }</div> |
| </div> |
| <div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> </div> |
| <div class="foldopen" id="foldopen00082" data-start="{" data-end="}"> |
| <div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="classpaimon_1_1_cache_config.html#aa57751ee46af856b9d29a5c9b4419c18"> 82</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classpaimon_1_1_cache_config.html#aa57751ee46af856b9d29a5c9b4419c18">SetRangeSizeLimit</a>(<a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">range_size_limit</a>) {</div> |
| <div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> range_size_limit_ = <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">range_size_limit</a>;</div> |
| <div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> }</div> |
| </div> |
| <div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> </div> |
| <div class="foldopen" id="foldopen00087" data-start="{" data-end="}"> |
| <div class="line"><a id="l00087" name="l00087"></a><span class="lineno"><a class="line" href="classpaimon_1_1_cache_config.html#a4b016a5a4f178c4d8ae4ac141d42f87d"> 87</a></span> <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> <a class="code hl_function" href="classpaimon_1_1_cache_config.html#a4b016a5a4f178c4d8ae4ac141d42f87d">GetHoleSizeLimit</a>()<span class="keyword"> const </span>{</div> |
| <div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="keywordflow">return</span> hole_size_limit_;</div> |
| <div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> }</div> |
| </div> |
| <div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> </div> |
| <div class="foldopen" id="foldopen00092" data-start="{" data-end="}"> |
| <div class="line"><a id="l00092" name="l00092"></a><span class="lineno"><a class="line" href="classpaimon_1_1_cache_config.html#afeea0b4c1c87616cee91d80b4fa0cff2"> 92</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classpaimon_1_1_cache_config.html#afeea0b4c1c87616cee91d80b4fa0cff2">SetHoleSizeLimit</a>(<a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">hole_size_limit</a>) {</div> |
| <div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> hole_size_limit_ = <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">hole_size_limit</a>;</div> |
| <div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> }</div> |
| </div> |
| <div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> </div> |
| <div class="foldopen" id="foldopen00097" data-start="{" data-end="}"> |
| <div class="line"><a id="l00097" name="l00097"></a><span class="lineno"><a class="line" href="classpaimon_1_1_cache_config.html#a6b505f42777a2c2369b27e6a7df98e9f"> 97</a></span> <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> <a class="code hl_function" href="classpaimon_1_1_cache_config.html#a6b505f42777a2c2369b27e6a7df98e9f">GetPreBufferLimit</a>()<span class="keyword"> const </span>{</div> |
| <div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="keywordflow">return</span> pre_buffer_limit_;</div> |
| <div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> }</div> |
| </div> |
| <div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> </div> |
| <div class="foldopen" id="foldopen00102" data-start="{" data-end="}"> |
| <div class="line"><a id="l00102" name="l00102"></a><span class="lineno"><a class="line" href="classpaimon_1_1_cache_config.html#a3588a14feec9cdf3473610687935e8ab"> 102</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classpaimon_1_1_cache_config.html#a3588a14feec9cdf3473610687935e8ab">SetPreBufferLimit</a>(<a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">pre_buffer_limit</a>) {</div> |
| <div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> pre_buffer_limit_ = <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">pre_buffer_limit</a>;</div> |
| <div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> }</div> |
| </div> |
| <div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> </div> |
| <div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="keyword">private</span>:</div> |
| <div class="line"><a id="l00107" name="l00107"></a><span class="lineno"><a class="line" href="classpaimon_1_1_cache_config.html#aaed6df7c1a84aa1911364d8109d54d41"> 107</a></span> <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> <a class="code hl_variable" href="classpaimon_1_1_cache_config.html#aaed6df7c1a84aa1911364d8109d54d41">buffer_size_limit_</a>;</div> |
| <div class="line"><a id="l00108" name="l00108"></a><span class="lineno"><a class="line" href="classpaimon_1_1_cache_config.html#a85f4a665f031038d447ae56aaea61543"> 108</a></span> <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> <a class="code hl_variable" href="classpaimon_1_1_cache_config.html#a85f4a665f031038d447ae56aaea61543">range_size_limit_</a>;</div> |
| <div class="line"><a id="l00109" name="l00109"></a><span class="lineno"><a class="line" href="classpaimon_1_1_cache_config.html#a66ed2830dc908c3088206e0382af287a"> 109</a></span> <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> <a class="code hl_variable" href="classpaimon_1_1_cache_config.html#a66ed2830dc908c3088206e0382af287a">hole_size_limit_</a>;</div> |
| <div class="line"><a id="l00110" name="l00110"></a><span class="lineno"><a class="line" href="classpaimon_1_1_cache_config.html#a132adafe235d5334716266d8eb28f90a"> 110</a></span> <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> <a class="code hl_variable" href="classpaimon_1_1_cache_config.html#a132adafe235d5334716266d8eb28f90a">pre_buffer_limit_</a>;</div> |
| <div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span>};</div> |
| </div> |
| <div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> </div> |
| <div class="foldopen" id="foldopen00114" data-start="{" data-end="};"> |
| <div class="line"><a id="l00114" name="l00114"></a><span class="lineno"><a class="line" href="structpaimon_1_1_byte_range.html"> 114</a></span><span class="keyword">struct </span><a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">PAIMON_EXPORT</a> <a class="code hl_struct" href="structpaimon_1_1_byte_range.html">ByteRange</a> {</div> |
| <div class="line"><a id="l00115" name="l00115"></a><span class="lineno"><a class="line" href="structpaimon_1_1_byte_range.html#a1db3d4bb8fb524a548eac031bf41b307"> 115</a></span> <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> <a class="code hl_variable" href="structpaimon_1_1_byte_range.html#a1db3d4bb8fb524a548eac031bf41b307">offset</a>;</div> |
| <div class="line"><a id="l00116" name="l00116"></a><span class="lineno"><a class="line" href="structpaimon_1_1_byte_range.html#af6819a7e5e5a11f34f9197e5c4802108"> 116</a></span> <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> <a class="code hl_variable" href="structpaimon_1_1_byte_range.html#af6819a7e5e5a11f34f9197e5c4802108">length</a>;</div> |
| <div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> </div> |
| <div class="line"><a id="l00118" name="l00118"></a><span class="lineno"><a class="line" href="structpaimon_1_1_byte_range.html#a22a86dd1f1f014cd1da639bdfd617771"> 118</a></span> <a class="code hl_function" href="structpaimon_1_1_byte_range.html#a22a86dd1f1f014cd1da639bdfd617771">ByteRange</a>() = <span class="keywordflow">default</span>;</div> |
| <div class="line"><a id="l00119" name="l00119"></a><span class="lineno"><a class="line" href="structpaimon_1_1_byte_range.html#a26c73bede7e3e89201437bdeae87a52b"> 119</a></span> <a class="code hl_function" href="structpaimon_1_1_byte_range.html#a26c73bede7e3e89201437bdeae87a52b">ByteRange</a>(<a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> offset, <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> length) : offset(offset), length(length) {}</div> |
| <div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> </div> |
| <div class="foldopen" id="foldopen00121" data-start="{" data-end="};"> |
| <div class="line"><a id="l00121" name="l00121"></a><span class="lineno"><a class="line" href="structpaimon_1_1_byte_range.html#a63a7449b3918265310a18cac0e649f37"> 121</a></span> <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code hl_friend" href="structpaimon_1_1_byte_range.html#a63a7449b3918265310a18cac0e649f37">operator==</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structpaimon_1_1_byte_range.html">ByteRange</a>& <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">left</a>, <span class="keyword">const</span> <a class="code hl_struct" href="structpaimon_1_1_byte_range.html">ByteRange</a>& <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">right</a>) {</div> |
| <div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keywordflow">return</span> (<a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">left</a>.offset == <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">right</a>.offset && <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">left</a>.length == <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">right</a>.length);</div> |
| <div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> }</div> |
| </div> |
| <div class="foldopen" id="foldopen00124" data-start="{" data-end="};"> |
| <div class="line"><a id="l00124" name="l00124"></a><span class="lineno"><a class="line" href="structpaimon_1_1_byte_range.html#a37734e96f5ff38abd539c52e0ae69998"> 124</a></span> <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code hl_friend" href="structpaimon_1_1_byte_range.html#a37734e96f5ff38abd539c52e0ae69998">operator!=</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structpaimon_1_1_byte_range.html">ByteRange</a>& <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">left</a>, <span class="keyword">const</span> <a class="code hl_struct" href="structpaimon_1_1_byte_range.html">ByteRange</a>& <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">right</a>) {</div> |
| <div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">return</span> !(<a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">left</a> == <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">right</a>);</div> |
| <div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> }</div> |
| </div> |
| <div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> </div> |
| <div class="foldopen" id="foldopen00130" data-start="{" data-end="}"> |
| <div class="line"><a id="l00130" name="l00130"></a><span class="lineno"><a class="line" href="structpaimon_1_1_byte_range.html#aa5ff13951209f168638e7faa305bb60c"> 130</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structpaimon_1_1_byte_range.html#aa5ff13951209f168638e7faa305bb60c">Contains</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structpaimon_1_1_byte_range.html">ByteRange</a>& <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">other</a>)<span class="keyword"> const </span>{</div> |
| <div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="keywordflow">return</span> (<a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">offset <= other.offset && offset + length ></a>= <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">other</a>.offset + <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">other</a>.length);</div> |
| <div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> }</div> |
| </div> |
| <div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span>};</div> |
| </div> |
| <div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> </div> |
| <div class="foldopen" id="foldopen00136" data-start="{" data-end="};"> |
| <div class="line"><a id="l00136" name="l00136"></a><span class="lineno"><a class="line" href="structpaimon_1_1_byte_slice.html"> 136</a></span><span class="keyword">struct </span><a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">PAIMON_EXPORT</a> <a class="code hl_struct" href="structpaimon_1_1_byte_slice.html">ByteSlice</a> {</div> |
| <div class="line"><a id="l00137" name="l00137"></a><span class="lineno"><a class="line" href="structpaimon_1_1_byte_slice.html#a60c1768fa6edc7ece58aeb2e91311561"> 137</a></span> std::shared_ptr<Bytes> buffer = <span class="keyword">nullptr</span>;</div> |
| <div class="line"><a id="l00138" name="l00138"></a><span class="lineno"><a class="line" href="structpaimon_1_1_byte_slice.html#a2f9c19d7e6aa8a36ea25b399f01f84a9"> 138</a></span> <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> offset = 0;</div> |
| <div class="line"><a id="l00139" name="l00139"></a><span class="lineno"><a class="line" href="structpaimon_1_1_byte_slice.html#a243938709fabd7ce4b088ea79d647a7d"> 139</a></span> <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> length = 0;</div> |
| <div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span>};</div> |
| </div> |
| <div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> </div> |
| <div class="foldopen" id="foldopen00151" data-start="{" data-end="};"> |
| <div class="line"><a id="l00151" name="l00151"></a><span class="lineno"><a class="line" href="classpaimon_1_1_read_ahead_cache.html"> 151</a></span><span class="keyword">class </span><a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">PAIMON_EXPORT</a> <a class="code hl_class" href="classpaimon_1_1_read_ahead_cache.html">ReadAheadCache</a> {</div> |
| <div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <span class="keyword">public</span>:</div> |
| <div class="line"><a id="l00154" name="l00154"></a><span class="lineno"><a class="line" href="classpaimon_1_1_read_ahead_cache.html#a59419e607f302c714b0ed01f258937b7"> 154</a></span> <a class="code hl_function" href="classpaimon_1_1_read_ahead_cache.html#a59419e607f302c714b0ed01f258937b7">ReadAheadCache</a>(<span class="keyword">const</span> std::shared_ptr<InputStream>& stream, <span class="keyword">const</span> <a class="code hl_class" href="classpaimon_1_1_cache_config.html">CacheConfig</a>& <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">config</a>,</div> |
| <div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="keyword">const</span> std::shared_ptr<MemoryPool>& <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">memory_pool</a>);</div> |
| <div class="line"><a id="l00156" name="l00156"></a><span class="lineno"><a class="line" href="classpaimon_1_1_read_ahead_cache.html#a973c05d669dd4cfac5852e0ac5a61dc5"> 156</a></span> <a class="code hl_function" href="classpaimon_1_1_read_ahead_cache.html#a973c05d669dd4cfac5852e0ac5a61dc5">~ReadAheadCache</a>();</div> |
| <div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> </div> |
| <div class="line"><a id="l00163" name="l00163"></a><span class="lineno"><a class="line" href="classpaimon_1_1_read_ahead_cache.html#a9c467e26b34251cede32cd43ca79b998"> 163</a></span> <a class="code hl_class" href="classpaimon_1_1_status.html">Status</a> <a class="code hl_function" href="classpaimon_1_1_read_ahead_cache.html#a9c467e26b34251cede32cd43ca79b998">Init</a>(std::vector<ByteRange>&& <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">ranges</a>);</div> |
| <div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> </div> |
| <div class="line"><a id="l00169" name="l00169"></a><span class="lineno"><a class="line" href="classpaimon_1_1_read_ahead_cache.html#aef0d61f73f6a97c2b980c391f3d1be52"> 169</a></span> <a class="code hl_class" href="classpaimon_1_1_result.html">Result<ByteSlice></a> <a class="code hl_function" href="classpaimon_1_1_read_ahead_cache.html#aef0d61f73f6a97c2b980c391f3d1be52">Read</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structpaimon_1_1_byte_range.html">ByteRange</a>& <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">range</a>);</div> |
| <div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> </div> |
| <div class="line"><a id="l00176" name="l00176"></a><span class="lineno"><a class="line" href="classpaimon_1_1_read_ahead_cache.html#a7b87e72510149507434b9bd6aa01d2f5"> 176</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classpaimon_1_1_read_ahead_cache.html#a7b87e72510149507434b9bd6aa01d2f5">Reset</a>();</div> |
| <div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> </div> |
| <div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> <span class="keyword">private</span>:</div> |
| <div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> <span class="keyword">class </span><a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">Impl</a>;</div> |
| <div class="line"><a id="l00180" name="l00180"></a><span class="lineno"><a class="line" href="classpaimon_1_1_read_ahead_cache.html#a1d442726bac5c6fbfa3cce79577a4123"> 180</a></span> std::unique_ptr<Impl> <a class="code hl_variable" href="classpaimon_1_1_read_ahead_cache.html#a1d442726bac5c6fbfa3cce79577a4123">impl_</a>;</div> |
| <div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span>};</div> |
| </div> |
| <div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> </div> |
| <div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span>} <span class="comment">// namespace paimon</span></div> |
| <div class="ttc" id="abytes_8h_html"><div class="ttname"><a href="bytes_8h.html">bytes.h</a></div></div> |
| <div class="ttc" id="aclasspaimon_1_1_cache_config_html"><div class="ttname"><a href="classpaimon_1_1_cache_config.html">paimon::CacheConfig</a></div><div class="ttdoc">Configuration parameters for the read-ahead cache behavior.</div><div class="ttdef"><b>Definition</b> read_ahead_cache.h:60</div></div> |
| <div class="ttc" id="aclasspaimon_1_1_cache_config_html_a132adafe235d5334716266d8eb28f90a"><div class="ttname"><a href="classpaimon_1_1_cache_config.html#a132adafe235d5334716266d8eb28f90a">paimon::CacheConfig::pre_buffer_limit_</a></div><div class="ttdeci">uint64_t pre_buffer_limit_</div><div class="ttdef"><b>Definition</b> read_ahead_cache.h:110</div></div> |
| <div class="ttc" id="aclasspaimon_1_1_cache_config_html_a3588a14feec9cdf3473610687935e8ab"><div class="ttname"><a href="classpaimon_1_1_cache_config.html#a3588a14feec9cdf3473610687935e8ab">paimon::CacheConfig::SetPreBufferLimit</a></div><div class="ttdeci">void SetPreBufferLimit(uint64_t pre_buffer_limit)</div><div class="ttdoc">Sets the maximum size to pre-buffer ahead of the current read position.</div><div class="ttdef"><b>Definition</b> read_ahead_cache.h:102</div></div> |
| <div class="ttc" id="aclasspaimon_1_1_cache_config_html_a4b016a5a4f178c4d8ae4ac141d42f87d"><div class="ttname"><a href="classpaimon_1_1_cache_config.html#a4b016a5a4f178c4d8ae4ac141d42f87d">paimon::CacheConfig::GetHoleSizeLimit</a></div><div class="ttdeci">uint64_t GetHoleSizeLimit() const</div><div class="ttdoc">Returns the maximum gap size (in bytes) considered mergeable between adjacent ranges.</div><div class="ttdef"><b>Definition</b> read_ahead_cache.h:87</div></div> |
| <div class="ttc" id="aclasspaimon_1_1_cache_config_html_a66ed2830dc908c3088206e0382af287a"><div class="ttname"><a href="classpaimon_1_1_cache_config.html#a66ed2830dc908c3088206e0382af287a">paimon::CacheConfig::hole_size_limit_</a></div><div class="ttdeci">uint64_t hole_size_limit_</div><div class="ttdef"><b>Definition</b> read_ahead_cache.h:109</div></div> |
| <div class="ttc" id="aclasspaimon_1_1_cache_config_html_a6ac21b106189c1b2b1a88ebb43b0d69e"><div class="ttname"><a href="classpaimon_1_1_cache_config.html#a6ac21b106189c1b2b1a88ebb43b0d69e">paimon::CacheConfig::GetRangeSizeLimit</a></div><div class="ttdeci">uint64_t GetRangeSizeLimit() const</div><div class="ttdoc">Returns the maximum allowed size (in bytes) for a single cached range.</div><div class="ttdef"><b>Definition</b> read_ahead_cache.h:77</div></div> |
| <div class="ttc" id="aclasspaimon_1_1_cache_config_html_a6b505f42777a2c2369b27e6a7df98e9f"><div class="ttname"><a href="classpaimon_1_1_cache_config.html#a6b505f42777a2c2369b27e6a7df98e9f">paimon::CacheConfig::GetPreBufferLimit</a></div><div class="ttdeci">uint64_t GetPreBufferLimit() const</div><div class="ttdoc">Returns the maximum size to pre-buffer ahead of the current read position.</div><div class="ttdef"><b>Definition</b> read_ahead_cache.h:97</div></div> |
| <div class="ttc" id="aclasspaimon_1_1_cache_config_html_a85f4a665f031038d447ae56aaea61543"><div class="ttname"><a href="classpaimon_1_1_cache_config.html#a85f4a665f031038d447ae56aaea61543">paimon::CacheConfig::range_size_limit_</a></div><div class="ttdeci">uint64_t range_size_limit_</div><div class="ttdef"><b>Definition</b> read_ahead_cache.h:108</div></div> |
| <div class="ttc" id="aclasspaimon_1_1_cache_config_html_a8636d32a2a4fce1d649dceea9a8a6863"><div class="ttname"><a href="classpaimon_1_1_cache_config.html#a8636d32a2a4fce1d649dceea9a8a6863">paimon::CacheConfig::GetBufferSizeLimit</a></div><div class="ttdeci">uint64_t GetBufferSizeLimit() const</div><div class="ttdoc">Returns the maximum total size (in bytes) of cached data.</div><div class="ttdef"><b>Definition</b> read_ahead_cache.h:67</div></div> |
| <div class="ttc" id="aclasspaimon_1_1_cache_config_html_a8f89e497006b99032be4be2042c09b1a"><div class="ttname"><a href="classpaimon_1_1_cache_config.html#a8f89e497006b99032be4be2042c09b1a">paimon::CacheConfig::CacheConfig</a></div><div class="ttdeci">CacheConfig(uint64_t buffer_size_limit, uint64_t range_size_limit, uint64_t hole_size_limit, uint64_t pre_buffer_limit)</div></div> |
| <div class="ttc" id="aclasspaimon_1_1_cache_config_html_aa57751ee46af856b9d29a5c9b4419c18"><div class="ttname"><a href="classpaimon_1_1_cache_config.html#aa57751ee46af856b9d29a5c9b4419c18">paimon::CacheConfig::SetRangeSizeLimit</a></div><div class="ttdeci">void SetRangeSizeLimit(uint64_t range_size_limit)</div><div class="ttdoc">Sets the maximum allowed size (in bytes) for a single cached range.</div><div class="ttdef"><b>Definition</b> read_ahead_cache.h:82</div></div> |
| <div class="ttc" id="aclasspaimon_1_1_cache_config_html_aab298e451827847913e0ec7dd7bb4aba"><div class="ttname"><a href="classpaimon_1_1_cache_config.html#aab298e451827847913e0ec7dd7bb4aba">paimon::CacheConfig::SetBufferSizeLimit</a></div><div class="ttdeci">void SetBufferSizeLimit(uint64_t buffer_size_limit)</div><div class="ttdoc">Sets the maximum total size (in bytes) of cached data.</div><div class="ttdef"><b>Definition</b> read_ahead_cache.h:72</div></div> |
| <div class="ttc" id="aclasspaimon_1_1_cache_config_html_aaed6df7c1a84aa1911364d8109d54d41"><div class="ttname"><a href="classpaimon_1_1_cache_config.html#aaed6df7c1a84aa1911364d8109d54d41">paimon::CacheConfig::buffer_size_limit_</a></div><div class="ttdeci">uint64_t buffer_size_limit_</div><div class="ttdef"><b>Definition</b> read_ahead_cache.h:107</div></div> |
| <div class="ttc" id="aclasspaimon_1_1_cache_config_html_abb64363e13e9819aed2c5d1823954eb4"><div class="ttname"><a href="classpaimon_1_1_cache_config.html#abb64363e13e9819aed2c5d1823954eb4">paimon::CacheConfig::CacheConfig</a></div><div class="ttdeci">CacheConfig()</div></div> |
| <div class="ttc" id="aclasspaimon_1_1_cache_config_html_afeea0b4c1c87616cee91d80b4fa0cff2"><div class="ttname"><a href="classpaimon_1_1_cache_config.html#afeea0b4c1c87616cee91d80b4fa0cff2">paimon::CacheConfig::SetHoleSizeLimit</a></div><div class="ttdeci">void SetHoleSizeLimit(uint64_t hole_size_limit)</div><div class="ttdoc">Sets the maximum gap size (in bytes) considered mergeable between adjacent ranges.</div><div class="ttdef"><b>Definition</b> read_ahead_cache.h:92</div></div> |
| <div class="ttc" id="aclasspaimon_1_1_read_ahead_cache_html"><div class="ttname"><a href="classpaimon_1_1_read_ahead_cache.html">paimon::ReadAheadCache</a></div><div class="ttdoc">A read cache designed to hide IO latencies when reading.</div><div class="ttdef"><b>Definition</b> read_ahead_cache.h:151</div></div> |
| <div class="ttc" id="aclasspaimon_1_1_read_ahead_cache_html_a1d442726bac5c6fbfa3cce79577a4123"><div class="ttname"><a href="classpaimon_1_1_read_ahead_cache.html#a1d442726bac5c6fbfa3cce79577a4123">paimon::ReadAheadCache::impl_</a></div><div class="ttdeci">std::unique_ptr< Impl > impl_</div><div class="ttdef"><b>Definition</b> read_ahead_cache.h:180</div></div> |
| <div class="ttc" id="aclasspaimon_1_1_read_ahead_cache_html_a59419e607f302c714b0ed01f258937b7"><div class="ttname"><a href="classpaimon_1_1_read_ahead_cache.html#a59419e607f302c714b0ed01f258937b7">paimon::ReadAheadCache::ReadAheadCache</a></div><div class="ttdeci">ReadAheadCache(const std::shared_ptr< InputStream > &stream, const CacheConfig &config, const std::shared_ptr< MemoryPool > &memory_pool)</div><div class="ttdoc">Construct a read cache with given options.</div></div> |
| <div class="ttc" id="aclasspaimon_1_1_read_ahead_cache_html_a7b87e72510149507434b9bd6aa01d2f5"><div class="ttname"><a href="classpaimon_1_1_read_ahead_cache.html#a7b87e72510149507434b9bd6aa01d2f5">paimon::ReadAheadCache::Reset</a></div><div class="ttdeci">void Reset()</div><div class="ttdoc">Reset the cache to its initial state, clearing all cached data and configuration.</div></div> |
| <div class="ttc" id="aclasspaimon_1_1_read_ahead_cache_html_a973c05d669dd4cfac5852e0ac5a61dc5"><div class="ttname"><a href="classpaimon_1_1_read_ahead_cache.html#a973c05d669dd4cfac5852e0ac5a61dc5">paimon::ReadAheadCache::~ReadAheadCache</a></div><div class="ttdeci">~ReadAheadCache()</div></div> |
| <div class="ttc" id="aclasspaimon_1_1_read_ahead_cache_html_a9c467e26b34251cede32cd43ca79b998"><div class="ttname"><a href="classpaimon_1_1_read_ahead_cache.html#a9c467e26b34251cede32cd43ca79b998">paimon::ReadAheadCache::Init</a></div><div class="ttdeci">Status Init(std::vector< ByteRange > &&ranges)</div><div class="ttdoc">Initialize the cache with given byte ranges to be cached.</div></div> |
| <div class="ttc" id="aclasspaimon_1_1_read_ahead_cache_html_aef0d61f73f6a97c2b980c391f3d1be52"><div class="ttname"><a href="classpaimon_1_1_read_ahead_cache.html#aef0d61f73f6a97c2b980c391f3d1be52">paimon::ReadAheadCache::Read</a></div><div class="ttdeci">Result< ByteSlice > Read(const ByteRange &range)</div><div class="ttdoc">Read a range previously provided to Init().</div></div> |
| <div class="ttc" id="aclasspaimon_1_1_result_html"><div class="ttname"><a href="classpaimon_1_1_result.html">paimon::Result</a></div><div class="ttdoc">A Result<T> object holds either a value of type T or a Status object explaining why such a value is n...</div><div class="ttdef"><b>Definition</b> result.h:33</div></div> |
| <div class="ttc" id="aclasspaimon_1_1_status_html"><div class="ttname"><a href="classpaimon_1_1_status.html">paimon::Status</a></div><div class="ttdoc">Status outcome object (success or error)</div><div class="ttdef"><b>Definition</b> status.h:92</div></div> |
| <div class="ttc" id="afile__system_8h_html"><div class="ttname"><a href="file__system_8h.html">file_system.h</a></div></div> |
| <div class="ttc" id="amemory__pool_8h_html"><div class="ttname"><a href="memory__pool_8h.html">memory_pool.h</a></div></div> |
| <div class="ttc" id="amemory__pool_8h_html_a147ba4ba34a215b3a4f3a95c1ee11704"><div class="ttname"><a href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">PAIMON_UNIQUE_PTR</a></div><div class="ttdeci">#define PAIMON_UNIQUE_PTR</div><div class="ttdef"><b>Definition</b> memory_pool.h:219</div></div> |
| <div class="ttc" id="anamespacepaimon_html"><div class="ttname"><a href="namespacepaimon.html">paimon</a></div><div class="ttdoc">Top-level namespace for Paimon C++ API.</div><div class="ttdef"><b>Definition</b> api.h:42</div></div> |
| <div class="ttc" id="anamespacepaimon_html_a2f09964ea85d5e9080c03c5073459784"><div class="ttname"><a href="namespacepaimon.html#a2f09964ea85d5e9080c03c5073459784">paimon::PrefetchCacheMode</a></div><div class="ttdeci">PrefetchCacheMode</div><div class="ttdoc">PrefetchCacheMode Cache prefetch switch modes.</div><div class="ttdef"><b>Definition</b> read_ahead_cache.h:48</div></div> |
| <div class="ttc" id="anamespacepaimon_html_a2f09964ea85d5e9080c03c5073459784a443475558f0168dff92ecde26b98ae5a"><div class="ttname"><a href="namespacepaimon.html#a2f09964ea85d5e9080c03c5073459784a443475558f0168dff92ecde26b98ae5a">paimon::PrefetchCacheMode::NEVER</a></div><div class="ttdeci">@ NEVER</div></div> |
| <div class="ttc" id="anamespacepaimon_html_a2f09964ea85d5e9080c03c5073459784a60e587f21f56c15938e185b5e4c85d38"><div class="ttname"><a href="namespacepaimon.html#a2f09964ea85d5e9080c03c5073459784a60e587f21f56c15938e185b5e4c85d38">paimon::PrefetchCacheMode::EXCLUDE_BITMAP</a></div><div class="ttdeci">@ EXCLUDE_BITMAP</div></div> |
| <div class="ttc" id="anamespacepaimon_html_a2f09964ea85d5e9080c03c5073459784a9b4209431cbe767b9614cb4ea2d37ba9"><div class="ttname"><a href="namespacepaimon.html#a2f09964ea85d5e9080c03c5073459784a9b4209431cbe767b9614cb4ea2d37ba9">paimon::PrefetchCacheMode::EXCLUDE_BITMAP_OR_PREDICATE</a></div><div class="ttdeci">@ EXCLUDE_BITMAP_OR_PREDICATE</div></div> |
| <div class="ttc" id="anamespacepaimon_html_a2f09964ea85d5e9080c03c5073459784af3fc827ade4b968e50406496907ef962"><div class="ttname"><a href="namespacepaimon.html#a2f09964ea85d5e9080c03c5073459784af3fc827ade4b968e50406496907ef962">paimon::PrefetchCacheMode::ALWAYS</a></div><div class="ttdeci">@ ALWAYS</div></div> |
| <div class="ttc" id="anamespacepaimon_html_a2f09964ea85d5e9080c03c5073459784af514ef9e88db83c632fb2f8482725b69"><div class="ttname"><a href="namespacepaimon.html#a2f09964ea85d5e9080c03c5073459784af514ef9e88db83c632fb2f8482725b69">paimon::PrefetchCacheMode::EXCLUDE_PREDICATE</a></div><div class="ttdeci">@ EXCLUDE_PREDICATE</div></div> |
| <div class="ttc" id="aresult_8h_html"><div class="ttname"><a href="result_8h.html">result.h</a></div></div> |
| <div class="ttc" id="astatus_8h_html"><div class="ttname"><a href="status_8h.html">status.h</a></div></div> |
| <div class="ttc" id="astructpaimon_1_1_byte_range_html"><div class="ttname"><a href="structpaimon_1_1_byte_range.html">paimon::ByteRange</a></div><div class="ttdoc">A byte range with offset and length.</div><div class="ttdef"><b>Definition</b> read_ahead_cache.h:114</div></div> |
| <div class="ttc" id="astructpaimon_1_1_byte_range_html_a1db3d4bb8fb524a548eac031bf41b307"><div class="ttname"><a href="structpaimon_1_1_byte_range.html#a1db3d4bb8fb524a548eac031bf41b307">paimon::ByteRange::offset</a></div><div class="ttdeci">uint64_t offset</div><div class="ttdef"><b>Definition</b> read_ahead_cache.h:115</div></div> |
| <div class="ttc" id="astructpaimon_1_1_byte_range_html_a22a86dd1f1f014cd1da639bdfd617771"><div class="ttname"><a href="structpaimon_1_1_byte_range.html#a22a86dd1f1f014cd1da639bdfd617771">paimon::ByteRange::ByteRange</a></div><div class="ttdeci">ByteRange()=default</div></div> |
| <div class="ttc" id="astructpaimon_1_1_byte_range_html_a26c73bede7e3e89201437bdeae87a52b"><div class="ttname"><a href="structpaimon_1_1_byte_range.html#a26c73bede7e3e89201437bdeae87a52b">paimon::ByteRange::ByteRange</a></div><div class="ttdeci">ByteRange(uint64_t offset, uint64_t length)</div><div class="ttdef"><b>Definition</b> read_ahead_cache.h:119</div></div> |
| <div class="ttc" id="astructpaimon_1_1_byte_range_html_a37734e96f5ff38abd539c52e0ae69998"><div class="ttname"><a href="structpaimon_1_1_byte_range.html#a37734e96f5ff38abd539c52e0ae69998">paimon::ByteRange::operator!=</a></div><div class="ttdeci">friend bool operator!=(const ByteRange &left, const ByteRange &right)</div><div class="ttdef"><b>Definition</b> read_ahead_cache.h:124</div></div> |
| <div class="ttc" id="astructpaimon_1_1_byte_range_html_a63a7449b3918265310a18cac0e649f37"><div class="ttname"><a href="structpaimon_1_1_byte_range.html#a63a7449b3918265310a18cac0e649f37">paimon::ByteRange::operator==</a></div><div class="ttdeci">friend bool operator==(const ByteRange &left, const ByteRange &right)</div><div class="ttdef"><b>Definition</b> read_ahead_cache.h:121</div></div> |
| <div class="ttc" id="astructpaimon_1_1_byte_range_html_aa5ff13951209f168638e7faa305bb60c"><div class="ttname"><a href="structpaimon_1_1_byte_range.html#aa5ff13951209f168638e7faa305bb60c">paimon::ByteRange::Contains</a></div><div class="ttdeci">bool Contains(const ByteRange &other) const</div><div class="ttdef"><b>Definition</b> read_ahead_cache.h:130</div></div> |
| <div class="ttc" id="astructpaimon_1_1_byte_range_html_af6819a7e5e5a11f34f9197e5c4802108"><div class="ttname"><a href="structpaimon_1_1_byte_range.html#af6819a7e5e5a11f34f9197e5c4802108">paimon::ByteRange::length</a></div><div class="ttdeci">uint64_t length</div><div class="ttdef"><b>Definition</b> read_ahead_cache.h:116</div></div> |
| <div class="ttc" id="astructpaimon_1_1_byte_slice_html"><div class="ttname"><a href="structpaimon_1_1_byte_slice.html">paimon::ByteSlice</a></div><div class="ttdoc">A byte slice with buffer, offset and length.</div><div class="ttdef"><b>Definition</b> read_ahead_cache.h:136</div></div> |
| <div class="ttc" id="avisibility_8h_html"><div class="ttname"><a href="visibility_8h.html">visibility.h</a></div></div> |
| </div><!-- fragment --></div><!-- contents --> |
| <!-- start footer part --> |
| <hr class="footer"/><address class="footer"><small> |
| Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 |
| </small></address> |
| </body> |
| </html> |