Skip to content

Commit

Permalink
deploy: 54859a0
Browse files Browse the repository at this point in the history
  • Loading branch information
Mallets committed Sep 10, 2024
1 parent 1728518 commit e25feeb
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 4 deletions.
4 changes: 2 additions & 2 deletions docs/manual/abstractions/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@
This time is a 64-bit time with a similar structure than a NTP timestamp (but with a different epoch):</p><ul><li>The higher 32-bit part is the number of seconds since midnight, January 1, 1970 UTC
(implying a rollover in 2106).</li><li>The lower 32-bit part is a fraction of second, but with the 4 last bits replaced by a counter.</li></ul><p>This time gives a theoretical resolution of (0xF * 10^9 / 2^32) = 3.5 nanoseconds.<br>It&rsquo;s counter part guarantees that the same time cannot be generated twice and that the <em>happened-before</em> relationship is preserved.</p></li><li><p>The <strong>UUID</strong> of the Zenoh router that generated the time.</p></li></ul><p>Such a timestamp allows Zenoh to guarantee that each value introduced into the system has a unique timestamp, and that those timestamps (and therefore the values) can be ordered in the same way at any point of the system, without the need of any consensus algorithm.</p><hr><h2 id=subscriber>Subscriber</h2><p>An entity registering interest for any change (put or delete) to a value associated with a key matching the specified
<a href=#key-expression>key expression</a>.</p><hr><h2 id=publisher>Publisher</h2><p>An entity declaring that it will be updating the key/value with keys matching a given <a href=#key-expression>key expression</a>.</p><hr><h2 id=queryable>Queryable</h2><p>A computation registered at a specific <a href=#key-expression>key expression</a>.</p><p>This computation can be triggered by a <code>get</code> operation on a <a href=#selector>selector</a> matching this key expression.
The computation function will receive the selector as parameters.</p><hr><h2 id=storage>Storage</h2><p><a href=../plugin-storage-manager>Storages</a> are both a queryable and subscriber. They</p><ul><li>subscribe to <a href=#key-expression>key expression</a>;</li><li>upon receiving publications matching their subscription, they store the associated values;</li><li>when queried with a selector matching their subscription, they return the latest values for each matching key.</li></ul><p><code>zenohd</code>, the reference implementation of a Zenoh node, supports storages through the <a href=../plugin-storage-manager><code>storages</code> plugin</a>.</p><p>Since there exist many ways to implement the storing part of the process, the <code>storages</code> plugin relies on dynamically loaded <a href=../plugin-storage-manager#backends-and-volumes>volumes</a> to do the actual value-storing. Each volume has its own tradeoffs, as well as potential uses besides acting as a database for <code>zenohd</code>.</p><hr><h2 id=admin-space>Admin space</h2><p>The key space of Zenoh dedicate to administer a Zenoh router and its plugins.
It is accessible via regular get/put on Zenoh, under the <code>@/router/&lt;router-id></code> prefix, where
The computation function will receive the selector as parameters.</p><hr><h2 id=storage>Storage</h2><p><a href=../plugin-storage-manager>Storages</a> are both a queryable and subscriber. They</p><ul><li>subscribe to <a href=#key-expression>key expression</a>;</li><li>upon receiving publications matching their subscription, they store the associated values;</li><li>when queried with a selector matching their subscription, they return the latest values for each matching key.</li></ul><p><code>zenohd</code>, the reference implementation of a Zenoh node, supports storages through the <a href=../plugin-storage-manager><code>storages</code> plugin</a>.</p><p>Since there exist many ways to implement the storing part of the process, the <code>storages</code> plugin relies on dynamically loaded <a href=../plugin-storage-manager#backends-and-volumes>volumes</a> to do the actual value-storing. Each volume has its own tradeoffs, as well as potential uses besides acting as a database for <code>zenohd</code>.</p><hr><h2 id=admin-space>Admin space</h2><p>The key space of Zenoh dedicated to administering a Zenoh router and its plugins.
It is accessible via regular GET/PUT on Zenoh, under the <code>@/router/&lt;router-id></code> prefix, where
<strong><code>&lt;router-id></code></strong> is the UUID of a Zenoh router.</p><p>When using the REST API, you can replace the <code>&lt;router-id></code> with the <strong><code>local</code></strong> keyword,
meaning the operation addresses the Zenoh router the HTTP client is connected to.</p><p>For instance, the following keys can be used:</p><ul><li><code>@/router/&lt;router-id></code> (read-only):<br>Returns a JSON with the status information about the router.</li><li><code>@/router/&lt;router-id>/config/**</code> (write-only):<br>Allows you to edit the configuration of the router at runtime.</li></ul><p>Some plugins may extend the admin space, such as <a href=../plugin-storage-manager>Storages</a>, which will add the following keys:</p><ul><li><code>@/router/&lt;router-id>/status/plugins/storage_manager/volumes/&lt;volume-name></code> (read-only):<br>Returning information about the selected backend in JSON format</li><li><code>@/router/&lt;router-id>/status/plugins/storage_manager/storages/&lt;storage-name></code> (read-only):<br>Returning information about the selected storage in JSON format</li></ul><div class=ato-next><b>Next up</b>: <a href=/docs/manual/configuration/>Configuration</a></div></main></div></div><footer class="ato-footer text-muted"><div class="container-fluid p-6 p-md-5"><div class=row><div class=col-md-2><h5>Eclipse Incubation</h5><p><img src=../../../img/eclipse-incubation.png style=width:100px></p><p>Eclipse zenoh &trade; is an incubating project under the Eclipse Foundation.</p></div><div class=col-md-2><h5>More Information</h5><p><a href=https://www.eclipse.org/legal target=_blank>Legal</a></p><p><a href=https://www.eclipse.org/legal/privacy.php target=_blank>Privacy policy</a></p><p><a href=https://www.eclipse.org/legal/termsofuse.php target=_blank>Terms of use</a></p><p><a href=https://www.eclipse.org/legal/copyright.php target=_blank>Copyright</a></p><p><a href=https://www.eclipse.org/security/ target=_blank>Report a security issue</a></p><p><a href=https://www.eclipse.org/legal/epl-2.0/ target=_blank>Eclipse Public License 2.0</a></p><p><a href=https://www.apache.org/licenses/LICENSE-2.0 target=_blank>Apache License 2.0</a></p><p><a href=https://www.eclipse.org/ target=_blank>Eclipse Foundation</a></p></div><div class=col-md-2><h5>Sponsored by:</h5><p><a href=https://www.eclipse.org target=_blank><img src=../../../img/eclipse-foundation.svg style=width:120px></a></p><p><a href=https://zettascale.tech target=_blank><img src=../../../img/zettascale-dark.svg style=width:120px></a></p></div><div class=col-md-2><h5>Follow us</h5><p><a href=https://github.com/eclipse-zenoh/zenoh><i class="fa fa-github" aria-hidden=true></i>
GitHub</a></p><p><a href=https://discord.gg/vSDSpqnbkm><i class="fa fa fa-comments-o" aria-hidden=true></i>
Expand Down
2 changes: 1 addition & 1 deletion docs/manual/configuration/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
</span></span><span style=display:flex><span> }
</span></span><span style=display:flex><span> <span style=color:#a00;background-color:#faa>}</span>
</span></span><span style=display:flex><span><span style=color:#a00;background-color:#faa>}</span>
</span></span></code></pre></div><ul><li>either via the <code>zenohd</code> command line option: <code>--adminspace-permissions &lt;[r|w|rw|none]></code></li></ul><p>Then you can change elements of it&rsquo;s configuration once it&rsquo;s started, by sending put messages to its <a href=../abstractions#admin-space>admin space</a>.</p><p>If one of the <code>zenohd</code> instances uses the REST plugin to expose Zenoh to HTTP requests, this can be done simply by sending such requests with tools such as <code>curl</code>.<br>To do this, use commands such as</p><div class=highlight><pre tabindex=0 style=background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>curl -X PUT http://localhost:8000/@/router/local/config/plugins/storage_manager/storages/my-storage -d <span style=color:#c30>&#39;{key_expr:&#34;demo/mystore/**&#34;, volume:{id:&#34;memory&#34;}}&#39;</span>
</span></span></code></pre></div><ul><li>either via the <code>zenohd</code> command line option: <code>--adminspace-permissions &lt;[r|w|rw|none]></code></li></ul><p>Then you can change elements of it&rsquo;s configuration once it&rsquo;s started, by sending PUT messages to its <a href=../abstractions#admin-space>admin space</a>.</p><p>If one of the <code>zenohd</code> instances uses the REST plugin to expose Zenoh to HTTP requests, this can be done simply by sending such requests with tools such as <code>curl</code>.<br>To do this, use commands such as</p><div class=highlight><pre tabindex=0 style=background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>curl -X PUT http://localhost:8000/@/router/local/config/plugins/storage_manager/storages/my-storage -d <span style=color:#c30>&#39;{key_expr:&#34;demo/mystore/**&#34;, volume:{id:&#34;memory&#34;}}&#39;</span>
</span></span><span style=display:flex><span><span style=color:#09f;font-style:italic># ^- REST plugin addr ^ ^--- config space --^ ^---- the path to the configured value ---^ ^-------------- the value to insert ----------------^</span>
</span></span></code></pre></div><p>Path-value pairs work much like they do when using <a href=#command-line-arguments>CLI arguments</a>.</p><p>Note that while you may attempt to change any part of the configuration through this mean, not all of its properties are actually watched.<br>For example, while the storage plugin watches for any change in its configuration and will attempt to act on it, the REST plugin will only log a warning that it observed a change, but won&rsquo;t apply it.<br>Changes to non-plugin parts of the configuration may be registered by the configuration, but not acted upon, such as the <code>mode</code> field of the configuration which is only ever read at startup.</p><div class=ato-next><b>Next up</b>: <a href=/docs/manual/plugins/>Zenoh plugins</a></div></main></div></div><footer class="ato-footer text-muted"><div class="container-fluid p-6 p-md-5"><div class=row><div class=col-md-2><h5>Eclipse Incubation</h5><p><img src=../../../img/eclipse-incubation.png style=width:100px></p><p>Eclipse zenoh &trade; is an incubating project under the Eclipse Foundation.</p></div><div class=col-md-2><h5>More Information</h5><p><a href=https://www.eclipse.org/legal target=_blank>Legal</a></p><p><a href=https://www.eclipse.org/legal/privacy.php target=_blank>Privacy policy</a></p><p><a href=https://www.eclipse.org/legal/termsofuse.php target=_blank>Terms of use</a></p><p><a href=https://www.eclipse.org/legal/copyright.php target=_blank>Copyright</a></p><p><a href=https://www.eclipse.org/security/ target=_blank>Report a security issue</a></p><p><a href=https://www.eclipse.org/legal/epl-2.0/ target=_blank>Eclipse Public License 2.0</a></p><p><a href=https://www.apache.org/licenses/LICENSE-2.0 target=_blank>Apache License 2.0</a></p><p><a href=https://www.eclipse.org/ target=_blank>Eclipse Foundation</a></p></div><div class=col-md-2><h5>Sponsored by:</h5><p><a href=https://www.eclipse.org target=_blank><img src=../../../img/eclipse-foundation.svg style=width:120px></a></p><p><a href=https://zettascale.tech target=_blank><img src=../../../img/zettascale-dark.svg style=width:120px></a></p></div><div class=col-md-2><h5>Follow us</h5><p><a href=https://github.com/eclipse-zenoh/zenoh><i class="fa fa-github" aria-hidden=true></i>
GitHub</a></p><p><a href=https://discord.gg/vSDSpqnbkm><i class="fa fa fa-comments-o" aria-hidden=true></i>
Expand Down
Loading

0 comments on commit e25feeb

Please sign in to comment.