blob: bde2c04b885055d124e63481f68f9093881c4179 [file] [log] [blame]
import{_ as t,o as e,c as n,e as a}from"./app-Bx8hKGcu.js";const l={},d=a(`<h1 id="background" tabindex="-1"><a class="header-anchor" href="#background"><span>Background</span></a></h1><p>When IoTDB service is started, metadata information is organized by loading log file <code>mlog.bin</code> and the results are held<br> in memory for a long time. As metadata continues to grow, memory continues to grow. In order to support the controllable<br> fluctuation in the massive metadata scenario, we provide a metadata storage type based on rocksDB.</p><h1 id="usage" tabindex="-1"><a class="header-anchor" href="#usage"><span>Usage</span></a></h1><p>Firstly, you should package <strong>schema-engine-rocksdb</strong> by the following command:</p><div class="language-bash line-numbers-mode" data-ext="sh" data-title="sh"><pre class="language-bash"><code>mvn clean package <span class="token parameter variable">-pl</span> schema-engine-rocksdb <span class="token parameter variable">-am</span> <span class="token parameter variable">-DskipTests</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>After that, you can get a <strong>conf</strong> directory and a <strong>lib</strong> directory in<br> schema-engine-rocksdb/target/schema-engine-rocksdb. Copy the file in the conf directory to the conf directory of server,<br> and copy the files in the lib directory to the lib directory of server.</p><p>Then, open the <strong>iotdb-datanode.properties</strong> in the conf directory of server, and set the <code>schema_engine_mode</code> to<br> Rocksdb_based. Restart the IoTDB, the system will use <code>RSchemaRegion</code> to manage the metadata.</p><div class="language-text line-numbers-mode" data-ext="text" data-title="text"><pre class="language-text"><code>####################
### Schema Engine Configuration
####################
# Choose the mode of schema engine. The value could be Memory,Schema_File and Rocksdb_based. If the provided value doesn&#39;t match any pre-defined value, Memory mode will be used as default.
# Datatype: string
schema_engine_mode=Rocksdb_based
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>When rocksdb is specified as the metadata storage type, configuration parameters of rocksDB are open to the public as file. You can modify the configuration file <code>schema-rocksdb.properties</code> to adjust parameters according to your own requirements, such as block cache. If there is no special requirement, use the default value.</p><h1 id="function-support" tabindex="-1"><a class="header-anchor" href="#function-support"><span>Function Support</span></a></h1><p>The module is still being improved, and some functions are not supported at the moment. The function modules are supported as follows:</p><table><thead><tr><th style="text-align:left;">function</th><th style="text-align:right;">support</th></tr></thead><tbody><tr><td style="text-align:left;">timeseries addition and deletion</td><td style="text-align:right;">yes</td></tr><tr><td style="text-align:left;">query the wildcard path(* and **)</td><td style="text-align:right;">yes</td></tr><tr><td style="text-align:left;">tag addition and deletion</td><td style="text-align:right;">yes</td></tr><tr><td style="text-align:left;">aligned timeseries</td><td style="text-align:right;">yes</td></tr><tr><td style="text-align:left;">wildcard node name(*)</td><td style="text-align:right;">no</td></tr><tr><td style="text-align:left;">meta template</td><td style="text-align:right;">no</td></tr><tr><td style="text-align:left;">tag index</td><td style="text-align:right;">no</td></tr><tr><td style="text-align:left;">continuous query</td><td style="text-align:right;">no</td></tr></tbody></table><h1 id="appendix-interface-support" tabindex="-1"><a class="header-anchor" href="#appendix-interface-support"><span>Appendix: Interface support</span></a></h1><p>The external interface, that is, the client can sense, related SQL is not supported;</p><p>The internal interface, that is, the invocation logic of other modules within the service, has no direct dependence on the external SQL;</p><table><thead><tr><th style="text-align:left;">interface</th><th style="text-align:right;">type</th><th style="text-align:center;">support</th><th style="text-align:center;">comment</th></tr></thead><tbody><tr><td style="text-align:left;">createTimeseries</td><td style="text-align:right;">external</td><td style="text-align:center;">yes</td><td style="text-align:center;"></td></tr><tr><td style="text-align:left;">createAlignedTimeSeries</td><td style="text-align:right;">external</td><td style="text-align:center;">yes</td><td style="text-align:center;"></td></tr><tr><td style="text-align:left;">showTimeseries</td><td style="text-align:right;">external</td><td style="text-align:center;">part of the support</td><td style="text-align:center;">not support LATEST</td></tr><tr><td style="text-align:left;">changeAlias</td><td style="text-align:right;">external</td><td style="text-align:center;">yes</td><td style="text-align:center;"></td></tr><tr><td style="text-align:left;">upsertTagsAndAttributes</td><td style="text-align:right;">external</td><td style="text-align:center;">yes</td><td style="text-align:center;"></td></tr><tr><td style="text-align:left;">addAttributes</td><td style="text-align:right;">external</td><td style="text-align:center;">yes</td><td style="text-align:center;"></td></tr><tr><td style="text-align:left;">addTags</td><td style="text-align:right;">external</td><td style="text-align:center;">yes</td><td style="text-align:center;"></td></tr><tr><td style="text-align:left;">dropTagsOrAttributes</td><td style="text-align:right;">external</td><td style="text-align:center;">yes</td><td style="text-align:center;"></td></tr><tr><td style="text-align:left;">setTagsOrAttributesValue</td><td style="text-align:right;">external</td><td style="text-align:center;">yes</td><td style="text-align:center;"></td></tr><tr><td style="text-align:left;">renameTagOrAttributeKey</td><td style="text-align:right;">external</td><td style="text-align:center;">yes</td><td style="text-align:center;"></td></tr><tr><td style="text-align:left;">*template</td><td style="text-align:right;">external</td><td style="text-align:center;">no</td><td style="text-align:center;"></td></tr><tr><td style="text-align:left;">*trigger</td><td style="text-align:right;">external</td><td style="text-align:center;">no</td><td style="text-align:center;"></td></tr><tr><td style="text-align:left;">deleteSchemaRegion</td><td style="text-align:right;">internal</td><td style="text-align:center;">yes</td><td style="text-align:center;"></td></tr><tr><td style="text-align:left;">autoCreateDeviceMNode</td><td style="text-align:right;">internal</td><td style="text-align:center;">no</td><td style="text-align:center;"></td></tr><tr><td style="text-align:left;">isPathExist</td><td style="text-align:right;">internal</td><td style="text-align:center;">yes</td><td style="text-align:center;"></td></tr><tr><td style="text-align:left;">getAllTimeseriesCount</td><td style="text-align:right;">internal</td><td style="text-align:center;">yes</td><td style="text-align:center;"></td></tr><tr><td style="text-align:left;">getDevicesNum</td><td style="text-align:right;">internal</td><td style="text-align:center;">yes</td><td style="text-align:center;"></td></tr><tr><td style="text-align:left;">getNodesCountInGivenLevel</td><td style="text-align:right;">internal</td><td style="text-align:center;">conditional support</td><td style="text-align:center;">path does not support wildcard</td></tr><tr><td style="text-align:left;">getMeasurementCountGroupByLevel</td><td style="text-align:right;">internal</td><td style="text-align:center;">yes</td><td style="text-align:center;"></td></tr><tr><td style="text-align:left;">getNodesListInGivenLevel</td><td style="text-align:right;">internal</td><td style="text-align:center;">conditional support</td><td style="text-align:center;">path does not support wildcard</td></tr><tr><td style="text-align:left;">getChildNodePathInNextLevel</td><td style="text-align:right;">internal</td><td style="text-align:center;">conditional support</td><td style="text-align:center;">path does not support wildcard</td></tr><tr><td style="text-align:left;">getChildNodeNameInNextLevel</td><td style="text-align:right;">internal</td><td style="text-align:center;">conditional support</td><td style="text-align:center;">path does not support wildcard</td></tr><tr><td style="text-align:left;">getBelongedDevices</td><td style="text-align:right;">internal</td><td style="text-align:center;">yes</td><td style="text-align:center;"></td></tr><tr><td style="text-align:left;">getMatchedDevices</td><td style="text-align:right;">internal</td><td style="text-align:center;">yes</td><td style="text-align:center;"></td></tr><tr><td style="text-align:left;">getMeasurementPaths</td><td style="text-align:right;">internal</td><td style="text-align:center;">yes</td><td style="text-align:center;"></td></tr><tr><td style="text-align:left;">getMeasurementPathsWithAlias</td><td style="text-align:right;">internal</td><td style="text-align:center;">yes</td><td style="text-align:center;"></td></tr><tr><td style="text-align:left;">getAllMeasurementByDevicePath</td><td style="text-align:right;">internal</td><td style="text-align:center;">yes</td><td style="text-align:center;"></td></tr><tr><td style="text-align:left;">getDeviceNode</td><td style="text-align:right;">internal</td><td style="text-align:center;">yes</td><td style="text-align:center;"></td></tr><tr><td style="text-align:left;">getMeasurementMNodes</td><td style="text-align:right;">internal</td><td style="text-align:center;">yes</td><td style="text-align:center;"></td></tr><tr><td style="text-align:left;">getSeriesSchemasAndReadLockDevice</td><td style="text-align:right;">internal</td><td style="text-align:center;">yes</td><td style="text-align:center;"></td></tr></tbody></table>`,16),r=[d];function i(s,o){return e(),n("div",null,r)}const c=t(l,[["render",i],["__file","SchemaRegion-rocksdb.html.vue"]]),y=JSON.parse('{"path":"/UserGuide/V1.1.x/Data-Modeling/SchemaRegion-rocksdb.html","title":"Background","lang":"en-US","frontmatter":{"description":"Background When IoTDB service is started, metadata information is organized by loading log file mlog.bin and the results are held in memory for a long time. As metadata continue...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://iotdb.apache.org/zh/UserGuide/V1.1.x/Data-Modeling/SchemaRegion-rocksdb.html"}],["meta",{"property":"og:url","content":"https://iotdb.apache.org/UserGuide/V1.1.x/Data-Modeling/SchemaRegion-rocksdb.html"}],["meta",{"property":"og:site_name","content":"IoTDB Website"}],["meta",{"property":"og:title","content":"Background"}],["meta",{"property":"og:description","content":"Background When IoTDB service is started, metadata information is organized by loading log file mlog.bin and the results are held in memory for a long time. As metadata continue..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2023-07-10T03:11:17.000Z"}],["meta",{"property":"article:modified_time","content":"2023-07-10T03:11:17.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Background\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2023-07-10T03:11:17.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1688958677000,"updatedTime":1688958677000,"contributors":[{"name":"CritasWang","email":"critas@outlook.com","commits":1}]},"readingTime":{"minutes":1.92,"words":576},"filePathRelative":"UserGuide/V1.1.x/Data-Modeling/SchemaRegion-rocksdb.md","localizedDate":"July 10, 2023","autoDesc":true}');export{c as comp,y as data};