You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@beam.apache.org by "dependabot[bot] (via GitHub)" <gi...@apache.org> on 2023/03/27 05:18:01 UTC

[GitHub] [beam] dependabot[bot] opened a new pull request, #25987: Bump github.com/tetratelabs/wazero from 1.0.0-rc.1 to 1.0.0 in /sdks

dependabot[bot] opened a new pull request, #25987:
URL: https://github.com/apache/beam/pull/25987

   Bumps [github.com/tetratelabs/wazero](https://github.com/tetratelabs/wazero) from 1.0.0-rc.1 to 1.0.0.
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a href="https://github.com/tetratelabs/wazero/releases">github.com/tetratelabs/wazero's releases</a>.</em></p>
   <blockquote>
   <h2>v1.0.0</h2>
   <p>wazero v1.0.0 completes our six month pre-release period and begins our compatibility promise. We will use semantic versions to label releases, and not break APIs we've exposed as non-experimental.</p>
   <p>Those not familiar with wazero can check out <a href="https://tetrate.io/blog/introducing-wazero-from-tetrate/">this blog</a> which overviews the zero dependency runtime. You can also check out <a href="https://wazero.io">our website</a> especially the <a href="https://wazero.io/community/">community</a> and <a href="https://wazero.io/community/users/">users</a> pages.</p>
   <p>Many of you have been following along with our <a href="https://github.com/tetratelabs/wazero/releases">pre-releases</a> over the last 6 months. We did introduce change since v1.0.0-rc.2 with a particularly notable feature we call &quot;anonymous modules&quot;. So, let's talk about that first.</p>
   <h2>Anonymous modules</h2>
   <p>There are two main ways wazero is used for high-volume request handling. One way is pooling modules and the other is instantiating per-request.</p>
   <p>The pool approach is used for functions designed to be invoked many times, such as <a href="https://http-wasm.io/">http-wasm</a>'s handler functions. A host, such a <a href="https://docs.dapr.io/reference/components-reference/supported-middleware/middleware-wasm/">dapr</a> keeps a pool of modules, and checks one out per request.</p>
   <p>The re-instantiate approach is where you know you can't re-use a module, because the code is not safe to invoke more than once. For example, WASI commands are not safe to re-invoke. So, you have to instantiate a fresh module per request. You can also re-instantiate for higher security on otherwise safe functions.</p>
   <p>The latter case was expensive before, because we had to make sure each request had not just a new module, but also a unique name in the runtime. You would see things like this to do that.</p>
   <pre lang="go"><code>// Currently, concurrent modules can conflict on name. Make sure we have
   // a unique one.
   instanceNum := out.instanceCounter.Add(1)
   instanceName := out.binaryName + &quot;-&quot; + strconv.FormatUint(instanceNum, 10)
   moduleConfig := out.moduleConfig.WithName(instanceName)
   </code></pre>
   <p>Both allocating a unique name and also name-based locks have a cost to them, and very high throughput use cases, such as event handling would show some contention around this.</p>
   <p>Through a lot of brainstorming and work, <a href="https://github.com/achille-roussel"><code>@​achille-roussel</code></a> <a href="https://github.com/ckaznocha"><code>@​ckaznocha</code></a> and <a href="https://github.com/mathetake"><code>@​mathetake</code></a> found a clever way to improve performance. When a module has no name, it has nothing to export to other modules. Most of the lock tension was around things to export, and an unnamed module is basically a leaf node with no consumer except the host. We could avoid a lot of the more expensive locking by special-casing modules instantiated without a name.</p>
   <p>In the end, to improve re-instantiation performance (when you can't pool modules), clear your module name!</p>
   <pre lang="diff"><code>-       // Currently, concurrent modules can conflict on name. Make sure we have
   -       // a unique one.
   -       instanceNum := out.instanceCounter.Add(1)
   -       instanceName := out.binaryName + &quot;-&quot; + strconv.FormatUint(instanceNum, 10)
   -       moduleConfig := out.moduleConfig.WithName(instanceName)
   +       // Clear the module name so that instantiations won't conflict.
   +       moduleConfig := out.moduleConfig.WithName(&quot;&quot;)
   </code></pre>
   <h2>Other changes</h2>
   <p>There were a myriad of change from wazero regulars, all of them in the bucket of stabilization, bug fixes or efficiency in general. <a href="https://github.com/achille-roussel"><code>@​achille-roussel</code></a> <a href="https://github.com/codefromthecrypt"><code>@​codefromthecrypt</code></a> and <a href="https://github.com/jerbob92"><code>@​jerbob92</code></a> put a lot of work into triage on WASI edge cases, both discussion and code. <a href="https://github.com/ncruces"><code>@​ncruces</code></a> fixed platform support for solaris/illumos <a href="https://github.com/mathetake"><code>@​mathetake</code></a> optimized wazero performance even more than before. <a href="https://github.com/evacchi"><code>@​evacchi</code></a> fixed a really important poll issue.</p>
   <p>These were driven by and thanks to community work. For example, <a href="https://github.com/Pryz"><code>@​Pryz</code></a> led feedback and problem resolution for go compiler tests. Both <a href="https://github.com/ncruces"><code>@​ncruces</code></a> on <a href="https://github.com/ncruces/go-sqlite3">go-sqlite</a> and <a href="https://github.com/jerbob92"><code>@​jerbob92</code></a> on <a href="https://github.com/klippa-app/pdfium-cli">pdfium</a> shared wins and opportunities for next steps.</p>
   <p>In short, there were a lot of exciting relevant work in the short period between rc2 and 1.0.0, and we are lucky for it!</p>
   <h2>v1.0.0-rc.2</h2>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a href="https://github.com/tetratelabs/wazero/commit/22f8d9da6950831c0442a142ef3f3c81034e8df3"><code>22f8d9d</code></a> fixes nil panic on close (<a href="https://redirect.github.com/tetratelabs/wazero/issues/1286">#1286</a>)</li>
   <li><a href="https://github.com/tetratelabs/wazero/commit/451c792ee8c3a38e5b83171726c1987305db0737"><code>451c792</code></a> Avoids returning ExitError on exit code zero, and optimizes for no allocation...</li>
   <li><a href="https://github.com/tetratelabs/wazero/commit/86f3b190eb492705d4d2dde8a81917fb69649d92"><code>86f3b19</code></a> documents WithDirMount wrt windows (<a href="https://redirect.github.com/tetratelabs/wazero/issues/1282">#1282</a>)</li>
   <li><a href="https://github.com/tetratelabs/wazero/commit/d0fc0c6232ad1ec30fcedb4ed50be292924c552b"><code>d0fc0c6</code></a> Import function type check at validation phrase (<a href="https://redirect.github.com/tetratelabs/wazero/issues/1281">#1281</a>)</li>
   <li><a href="https://github.com/tetratelabs/wazero/commit/244c5c5792c3ccb012e2f15f6aa5b2e4ed5eed85"><code>244c5c5</code></a> ensures we don't open a file to close it (<a href="https://redirect.github.com/tetratelabs/wazero/issues/1279">#1279</a>)</li>
   <li><a href="https://github.com/tetratelabs/wazero/commit/4eba21372cb519e8bac91ef2425ecd54b44e858d"><code>4eba213</code></a> Support registering multiple instances of anonymous modules (<a href="https://redirect.github.com/tetratelabs/wazero/issues/1259">#1259</a>)</li>
   <li><a href="https://github.com/tetratelabs/wazero/commit/53bb95eeaa9246bf6fe0852c1933518df4020b84"><code>53bb95e</code></a> Allow ModuleConfig.WithName(&quot;&quot;) to clear the module name (<a href="https://redirect.github.com/tetratelabs/wazero/issues/1277">#1277</a>)</li>
   <li><a href="https://github.com/tetratelabs/wazero/commit/d8f356e6441fb78fcdbe45a692890a804bc1eb25"><code>d8f356e</code></a> Removes unused GoFunc types (<a href="https://redirect.github.com/tetratelabs/wazero/issues/1276">#1276</a>)</li>
   <li><a href="https://github.com/tetratelabs/wazero/commit/cd1110c0880ef90b9ce7cec73efc4147e4660429"><code>cd1110c</code></a> Avoids allocation of exports map per instance (<a href="https://redirect.github.com/tetratelabs/wazero/issues/1275">#1275</a>)</li>
   <li><a href="https://github.com/tetratelabs/wazero/commit/7721f0ab976fcb57e1eb6d4e9736df2c49c3ae17"><code>7721f0a</code></a> build: makes wazero buildable on solaris and illumos (<a href="https://redirect.github.com/tetratelabs/wazero/issues/1274">#1274</a>)</li>
   <li>Additional commits viewable in <a href="https://github.com/tetratelabs/wazero/compare/v1.0.0-rc.1...v1.0.0">compare view</a></li>
   </ul>
   </details>
   <br />
   
   
   [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/tetratelabs/wazero&package-manager=go_modules&previous-version=1.0.0-rc.1&new-version=1.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
   
   Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
   
   [//]: # (dependabot-automerge-start)
   [//]: # (dependabot-automerge-end)
   
   ---
   
   <details>
   <summary>Dependabot commands and options</summary>
   <br />
   
   You can trigger Dependabot actions by commenting on this PR:
   - `@dependabot rebase` will rebase this PR
   - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
   - `@dependabot merge` will merge this PR after your CI passes on it
   - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
   - `@dependabot cancel merge` will cancel a previously requested merge and block automerging
   - `@dependabot reopen` will reopen this PR if it is closed
   - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
   - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
   - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
   - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
   
   
   </details>


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [beam] dependabot[bot] closed pull request #25987: Bump github.com/tetratelabs/wazero from 1.0.0-rc.1 to 1.0.0 in /sdks

Posted by "dependabot[bot] (via GitHub)" <gi...@apache.org>.
dependabot[bot] closed pull request #25987: Bump github.com/tetratelabs/wazero from 1.0.0-rc.1 to 1.0.0 in /sdks
URL: https://github.com/apache/beam/pull/25987


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [beam] dependabot[bot] commented on pull request #25987: Bump github.com/tetratelabs/wazero from 1.0.0-rc.1 to 1.0.0 in /sdks

Posted by "dependabot[bot] (via GitHub)" <gi...@apache.org>.
dependabot[bot] commented on PR #25987:
URL: https://github.com/apache/beam/pull/25987#issuecomment-1487964122

   Superseded by #26024.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [beam] github-actions[bot] commented on pull request #25987: Bump github.com/tetratelabs/wazero from 1.0.0-rc.1 to 1.0.0 in /sdks

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #25987:
URL: https://github.com/apache/beam/pull/25987#issuecomment-1484547129

   Checks are failing. Will not request review until checks are succeeding. If you'd like to override that behavior, comment `assign set of reviewers`


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org