Files
greptimedb/store_api/region_engine/trait.RegionEngine.html
2026-01-09 10:26:55 +00:00

169 lines
45 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `RegionEngine` trait in crate `store_api`."><title>RegionEngine in store_api::region_engine - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="store_api" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">RegionEngine</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../store_api/index.html">store_<wbr>api</a><span class="version">1.0.0-beta.4</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Region<wbr>Engine</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.as_any" title="as_any">as_any</a></li><li><a href="#tymethod.get_committed_sequence" title="get_committed_sequence">get_committed_sequence</a></li><li><a href="#tymethod.get_metadata" title="get_metadata">get_metadata</a></li><li><a href="#tymethod.handle_query" title="handle_query">handle_query</a></li><li><a href="#tymethod.handle_request" title="handle_request">handle_request</a></li><li><a href="#tymethod.name" title="name">name</a></li><li><a href="#tymethod.region_statistic" title="region_statistic">region_statistic</a></li><li><a href="#tymethod.remap_manifests" title="remap_manifests">remap_manifests</a></li><li><a href="#tymethod.role" title="role">role</a></li><li><a href="#tymethod.set_region_role" title="set_region_role">set_region_role</a></li><li><a href="#tymethod.set_region_role_state_gracefully" title="set_region_role_state_gracefully">set_region_role_state_gracefully</a></li><li><a href="#tymethod.stop" title="stop">stop</a></li><li><a href="#tymethod.sync_region" title="sync_region">sync_region</a></li></ul><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.handle_batch_catchup_requests" title="handle_batch_catchup_requests">handle_batch_catchup_requests</a></li><li><a href="#method.handle_batch_ddl_requests" title="handle_batch_ddl_requests">handle_batch_ddl_requests</a></li><li><a href="#method.handle_batch_open_requests" title="handle_batch_open_requests">handle_batch_open_requests</a></li><li><a href="#method.register_query_memory_permit" title="register_query_memory_permit">register_query_memory_permit</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In store_<wbr>api::<wbr>region_<wbr>engine</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">store_api</a>::<wbr><a href="index.html">region_engine</a></div><h1>Trait <span class="trait">Region<wbr>Engine</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/store_api/region_engine.rs.html#785-929">Source</a> </span></div><pre class="rust item-decl"><code>pub trait RegionEngine: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> {
<details class="toggle type-contents-toggle"><summary class="hideme"><span>Show 17 methods</span></summary> // Required methods
fn <a href="#tymethod.name" class="fn">name</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.handle_request" class="fn">handle_request</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
region_id: <a class="struct" href="../storage/struct.RegionId.html" title="struct store_api::storage::RegionId">RegionId</a>,
request: <a class="enum" href="../region_request/enum.RegionRequest.html" title="enum store_api::region_request::RegionRequest">RegionRequest</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;RegionResponse, BoxedError&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait</span>;
<span class="item-spacer"></span> fn <a href="#tymethod.get_committed_sequence" class="fn">get_committed_sequence</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
region_id: <a class="struct" href="../storage/struct.RegionId.html" title="struct store_api::storage::RegionId">RegionId</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="type" href="../storage/type.SequenceNumber.html" title="type store_api::storage::SequenceNumber">SequenceNumber</a>, BoxedError&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait</span>;
<span class="item-spacer"></span> fn <a href="#tymethod.handle_query" class="fn">handle_query</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
region_id: <a class="struct" href="../storage/struct.RegionId.html" title="struct store_api::storage::RegionId">RegionId</a>,
request: <a class="struct" href="../storage/struct.ScanRequest.html" title="struct store_api::storage::ScanRequest">ScanRequest</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="type" href="type.RegionScannerRef.html" title="type store_api::region_engine::RegionScannerRef">RegionScannerRef</a>, BoxedError&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait</span>;
<span class="item-spacer"></span> fn <a href="#tymethod.get_metadata" class="fn">get_metadata</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
region_id: <a class="struct" href="../storage/struct.RegionId.html" title="struct store_api::storage::RegionId">RegionId</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="type" href="../metadata/type.RegionMetadataRef.html" title="type store_api::metadata::RegionMetadataRef">RegionMetadataRef</a>, BoxedError&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait</span>;
<span class="item-spacer"></span> fn <a href="#tymethod.region_statistic" class="fn">region_statistic</a>(&amp;self, region_id: <a class="struct" href="../storage/struct.RegionId.html" title="struct store_api::storage::RegionId">RegionId</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="struct.RegionStatistic.html" title="struct store_api::region_engine::RegionStatistic">RegionStatistic</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.stop" class="fn">stop</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, BoxedError&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait</span>;
<span class="item-spacer"></span> fn <a href="#tymethod.set_region_role" class="fn">set_region_role</a>(
&amp;self,
region_id: <a class="struct" href="../storage/struct.RegionId.html" title="struct store_api::storage::RegionId">RegionId</a>,
role: <a class="enum" href="enum.RegionRole.html" title="enum store_api::region_engine::RegionRole">RegionRole</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, BoxedError&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.sync_region" class="fn">sync_region</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
region_id: <a class="struct" href="../storage/struct.RegionId.html" title="struct store_api::storage::RegionId">RegionId</a>,
request: <a class="enum" href="enum.SyncRegionFromRequest.html" title="enum store_api::region_engine::SyncRegionFromRequest">SyncRegionFromRequest</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="enum.SyncRegionFromResponse.html" title="enum store_api::region_engine::SyncRegionFromResponse">SyncRegionFromResponse</a>, BoxedError&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait</span>;
<span class="item-spacer"></span> fn <a href="#tymethod.remap_manifests" class="fn">remap_manifests</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
request: <a class="struct" href="struct.RemapManifestsRequest.html" title="struct store_api::region_engine::RemapManifestsRequest">RemapManifestsRequest</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.RemapManifestsResponse.html" title="struct store_api::region_engine::RemapManifestsResponse">RemapManifestsResponse</a>, BoxedError&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait</span>;
<span class="item-spacer"></span> fn <a href="#tymethod.set_region_role_state_gracefully" class="fn">set_region_role_state_gracefully</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
region_id: <a class="struct" href="../storage/struct.RegionId.html" title="struct store_api::storage::RegionId">RegionId</a>,
region_role_state: <a class="enum" href="enum.SettableRegionRoleState.html" title="enum store_api::region_engine::SettableRegionRoleState">SettableRegionRoleState</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="enum.SetRegionRoleStateResponse.html" title="enum store_api::region_engine::SetRegionRoleStateResponse">SetRegionRoleStateResponse</a>, BoxedError&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait</span>;
<span class="item-spacer"></span> fn <a href="#tymethod.role" class="fn">role</a>(&amp;self, region_id: <a class="struct" href="../storage/struct.RegionId.html" title="struct store_api::storage::RegionId">RegionId</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum" href="enum.RegionRole.html" title="enum store_api::region_engine::RegionRole">RegionRole</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.as_any" class="fn">as_any</a>(&amp;self) -&gt; &amp;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a>;
// Provided methods
fn <a href="#method.handle_batch_open_requests" class="fn">handle_batch_open_requests</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
parallelism: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
requests: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;(<a class="struct" href="../storage/struct.RegionId.html" title="struct store_api::storage::RegionId">RegionId</a>, <a class="struct" href="../region_request/struct.RegionOpenRequest.html" title="struct store_api::region_request::RegionOpenRequest">RegionOpenRequest</a>)&gt;,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="type" href="type.BatchResponses.html" title="type store_api::region_engine::BatchResponses">BatchResponses</a>, BoxedError&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait</span> { ... }
<span class="item-spacer"></span> fn <a href="#method.handle_batch_catchup_requests" class="fn">handle_batch_catchup_requests</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
parallelism: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
requests: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;(<a class="struct" href="../storage/struct.RegionId.html" title="struct store_api::storage::RegionId">RegionId</a>, <a class="struct" href="../region_request/struct.RegionCatchupRequest.html" title="struct store_api::region_request::RegionCatchupRequest">RegionCatchupRequest</a>)&gt;,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="type" href="type.BatchResponses.html" title="type store_api::region_engine::BatchResponses">BatchResponses</a>, BoxedError&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait</span> { ... }
<span class="item-spacer"></span> fn <a href="#method.handle_batch_ddl_requests" class="fn">handle_batch_ddl_requests</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
request: <a class="enum" href="../region_request/enum.BatchRegionDdlRequest.html" title="enum store_api::region_request::BatchRegionDdlRequest">BatchRegionDdlRequest</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;RegionResponse, BoxedError&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait</span> { ... }
<span class="item-spacer"></span> fn <a href="#method.register_query_memory_permit" class="fn">register_query_memory_permit</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;MemoryPermit&gt;&gt; { ... }
</details>}</code></pre><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.name" class="method"><a class="src rightside" href="../../src/store_api/region_engine.rs.html#787">Source</a><h4 class="code-header">fn <a href="#tymethod.name" class="fn">name</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Name of this engine</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.handle_request" class="method"><a class="src rightside" href="../../src/store_api/region_engine.rs.html#861-865">Source</a><h4 class="code-header">fn <a href="#tymethod.handle_request" class="fn">handle_request</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
region_id: <a class="struct" href="../storage/struct.RegionId.html" title="struct store_api::storage::RegionId">RegionId</a>,
request: <a class="enum" href="../region_request/enum.RegionRequest.html" title="enum store_api::region_request::RegionRequest">RegionRequest</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;RegionResponse, BoxedError&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Handles non-query request to the region. Returns the count of affected rows.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.get_committed_sequence" class="method"><a class="src rightside" href="../../src/store_api/region_engine.rs.html#868-871">Source</a><h4 class="code-header">fn <a href="#tymethod.get_committed_sequence" class="fn">get_committed_sequence</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
region_id: <a class="struct" href="../storage/struct.RegionId.html" title="struct store_api::storage::RegionId">RegionId</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="type" href="../storage/type.SequenceNumber.html" title="type store_api::storage::SequenceNumber">SequenceNumber</a>, BoxedError&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Returns the committed sequence (sequence of latest written data).</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.handle_query" class="method"><a class="src rightside" href="../../src/store_api/region_engine.rs.html#874-878">Source</a><h4 class="code-header">fn <a href="#tymethod.handle_query" class="fn">handle_query</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
region_id: <a class="struct" href="../storage/struct.RegionId.html" title="struct store_api::storage::RegionId">RegionId</a>,
request: <a class="struct" href="../storage/struct.ScanRequest.html" title="struct store_api::storage::ScanRequest">ScanRequest</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="type" href="type.RegionScannerRef.html" title="type store_api::region_engine::RegionScannerRef">RegionScannerRef</a>, BoxedError&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Handles query and return a scanner that can be used to scan the region concurrently.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.get_metadata" class="method"><a class="src rightside" href="../../src/store_api/region_engine.rs.html#886">Source</a><h4 class="code-header">fn <a href="#tymethod.get_metadata" class="fn">get_metadata</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
region_id: <a class="struct" href="../storage/struct.RegionId.html" title="struct store_api::storage::RegionId">RegionId</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="type" href="../metadata/type.RegionMetadataRef.html" title="type store_api::metadata::RegionMetadataRef">RegionMetadataRef</a>, BoxedError&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Retrieves regions metadata.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.region_statistic" class="method"><a class="src rightside" href="../../src/store_api/region_engine.rs.html#889">Source</a><h4 class="code-header">fn <a href="#tymethod.region_statistic" class="fn">region_statistic</a>(&amp;self, region_id: <a class="struct" href="../storage/struct.RegionId.html" title="struct store_api::storage::RegionId">RegionId</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="struct.RegionStatistic.html" title="struct store_api::region_engine::RegionStatistic">RegionStatistic</a>&gt;</h4></section></summary><div class="docblock"><p>Retrieves regions statistic.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.stop" class="method"><a class="src rightside" href="../../src/store_api/region_engine.rs.html#892">Source</a><h4 class="code-header">fn <a href="#tymethod.stop" class="fn">stop</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, BoxedError&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Stops the engine</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.set_region_role" class="method"><a class="src rightside" href="../../src/store_api/region_engine.rs.html#899">Source</a><h4 class="code-header">fn <a href="#tymethod.set_region_role" class="fn">set_region_role</a>(
&amp;self,
region_id: <a class="struct" href="../storage/struct.RegionId.html" title="struct store_api::storage::RegionId">RegionId</a>,
role: <a class="enum" href="enum.RegionRole.html" title="enum store_api::region_engine::RegionRole">RegionRole</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, BoxedError&gt;</h4></section></summary><div class="docblock"><p>Sets <a href="enum.RegionRole.html" title="enum store_api::region_engine::RegionRole">RegionRole</a> for a region.</p>
<p>The engine checks whether the region is writable before writing to the region. Setting
the region as readonly doesnt guarantee that write operations in progress will not
take effect.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.sync_region" class="method"><a class="src rightside" href="../../src/store_api/region_engine.rs.html#902-906">Source</a><h4 class="code-header">fn <a href="#tymethod.sync_region" class="fn">sync_region</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
region_id: <a class="struct" href="../storage/struct.RegionId.html" title="struct store_api::storage::RegionId">RegionId</a>,
request: <a class="enum" href="enum.SyncRegionFromRequest.html" title="enum store_api::region_engine::SyncRegionFromRequest">SyncRegionFromRequest</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="enum.SyncRegionFromResponse.html" title="enum store_api::region_engine::SyncRegionFromResponse">SyncRegionFromResponse</a>, BoxedError&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Syncs the region manifest to the given manifest version.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.remap_manifests" class="method"><a class="src rightside" href="../../src/store_api/region_engine.rs.html#909-912">Source</a><h4 class="code-header">fn <a href="#tymethod.remap_manifests" class="fn">remap_manifests</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
request: <a class="struct" href="struct.RemapManifestsRequest.html" title="struct store_api::region_engine::RemapManifestsRequest">RemapManifestsRequest</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.RemapManifestsResponse.html" title="struct store_api::region_engine::RemapManifestsResponse">RemapManifestsResponse</a>, BoxedError&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Remaps manifests from old regions to new regions.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.set_region_role_state_gracefully" class="method"><a class="src rightside" href="../../src/store_api/region_engine.rs.html#917-921">Source</a><h4 class="code-header">fn <a href="#tymethod.set_region_role_state_gracefully" class="fn">set_region_role_state_gracefully</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
region_id: <a class="struct" href="../storage/struct.RegionId.html" title="struct store_api::storage::RegionId">RegionId</a>,
region_role_state: <a class="enum" href="enum.SettableRegionRoleState.html" title="enum store_api::region_engine::SettableRegionRoleState">SettableRegionRoleState</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="enum.SetRegionRoleStateResponse.html" title="enum store_api::region_engine::SetRegionRoleStateResponse">SetRegionRoleStateResponse</a>, BoxedError&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Sets region role state gracefully.</p>
<p>After the call returns, the engine ensures no more write operations will succeed in the region.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.role" class="method"><a class="src rightside" href="../../src/store_api/region_engine.rs.html#926">Source</a><h4 class="code-header">fn <a href="#tymethod.role" class="fn">role</a>(&amp;self, region_id: <a class="struct" href="../storage/struct.RegionId.html" title="struct store_api::storage::RegionId">RegionId</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum" href="enum.RegionRole.html" title="enum store_api::region_engine::RegionRole">RegionRole</a>&gt;</h4></section></summary><div class="docblock"><p>Indicates region role.</p>
<p>Returns the <code>None</code> if the region is not found.</p>
</div></details><section id="tymethod.as_any" class="method"><a class="src rightside" href="../../src/store_api/region_engine.rs.html#928">Source</a><h4 class="code-header">fn <a href="#tymethod.as_any" class="fn">as_any</a>(&amp;self) -&gt; &amp;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a></h4></section></div><h2 id="provided-methods" class="section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="method.handle_batch_open_requests" class="method"><a class="src rightside" href="../../src/store_api/region_engine.rs.html#790-812">Source</a><h4 class="code-header">fn <a href="#method.handle_batch_open_requests" class="fn">handle_batch_open_requests</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
parallelism: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
requests: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;(<a class="struct" href="../storage/struct.RegionId.html" title="struct store_api::storage::RegionId">RegionId</a>, <a class="struct" href="../region_request/struct.RegionOpenRequest.html" title="struct store_api::region_request::RegionOpenRequest">RegionOpenRequest</a>)&gt;,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="type" href="type.BatchResponses.html" title="type store_api::region_engine::BatchResponses">BatchResponses</a>, BoxedError&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Handles batch open region requests.</p>
</div></details><section id="method.handle_batch_catchup_requests" class="method"><a class="src rightside" href="../../src/store_api/region_engine.rs.html#814-836">Source</a><h4 class="code-header">fn <a href="#method.handle_batch_catchup_requests" class="fn">handle_batch_catchup_requests</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
parallelism: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
requests: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;(<a class="struct" href="../storage/struct.RegionId.html" title="struct store_api::storage::RegionId">RegionId</a>, <a class="struct" href="../region_request/struct.RegionCatchupRequest.html" title="struct store_api::region_request::RegionCatchupRequest">RegionCatchupRequest</a>)&gt;,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="type" href="type.BatchResponses.html" title="type store_api::region_engine::BatchResponses">BatchResponses</a>, BoxedError&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,</div></h4></section><section id="method.handle_batch_ddl_requests" class="method"><a class="src rightside" href="../../src/store_api/region_engine.rs.html#838-858">Source</a><h4 class="code-header">fn <a href="#method.handle_batch_ddl_requests" class="fn">handle_batch_ddl_requests</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
request: <a class="enum" href="../region_request/enum.BatchRegionDdlRequest.html" title="enum store_api::region_request::BatchRegionDdlRequest">BatchRegionDdlRequest</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;RegionResponse, BoxedError&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,</div></h4></section><details class="toggle method-toggle" open><summary><section id="method.register_query_memory_permit" class="method"><a class="src rightside" href="../../src/store_api/region_engine.rs.html#881-883">Source</a><h4 class="code-header">fn <a href="#method.register_query_memory_permit" class="fn">register_query_memory_permit</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;MemoryPermit&gt;&gt;</h4></section></summary><div class="docblock"><p>Registers and returns a query memory permit.</p>
</div></details></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../trait.impl/store_api/region_engine/trait.RegionEngine.js" async></script></section></div></main></body></html>