You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@texera.apache.org by "aglinxinyuan (via GitHub)" <gi...@apache.org> on 2026/08/25 05:53:23 UTC

[PR] test(workflow-operator): close the AsterixDB source descriptor's branch arms [texera]

aglinxinyuan opened a new pull request, #7958:
URL: https://github.com/apache/texera/pull/7958

   ### What changes were proposed in this PR?
   
   Two files in the AsterixDB source family. 52 tests → 68 (`AsterixDBSourceOpDescSpec` 5 → 18, `AsterixDBSourceOpExecSpec` 47 → 50), counts read from the JUnit XML rather than estimated.
   
   | File | Codecov | JaCoCo line-hit | Branch arms |
   |---|---|---|---|
   | `AsterixDBSourceOpDesc.scala` | 42/50 = 84.0% → **49/50 = 98.0%** | 100% → 100% | 12 missed → **1** |
   | `AsterixDBSourceOpExec.scala` | 91/104 = 87.5% → **92/104 = 88.5%** | 99% → 99% | 19 missed → **15** |
   
   **+8 fully-covered lines and 15 branch arms closed.** Note the line-hit metric does not move at all: every gain is a branch arm flipping a Codecov "partial" into a "hit". That is the case Codecov penalises and line-hit hides, and it is the whole content of this PR.
   
   The `OpExec` half was assessed earlier at about 1 line, and that held — it contributes +1. The `OpDesc` half carries the bundle.
   
   ### Verification
   
   30 mutations, **29 killed, 1 survivor.**
   
   The first draft claimed no survivors; **five real, semantic, non-equivalent mutants survived it**, all five re-run and confirmed before anything was changed. Its counts were also stale (`testsAfter: 64` against an actual 68) and two mutation rows undercounted their failures.
   
   Three repairs are worth naming:
   
   - **The stub answered every statement identically**, which made the query assertions vacuous — an exchanged query passed. It now records the decoded statements and asserts on them.
   - **A mapping assertion was deleted rather than kept**: `asterixDBVersionMapping.get(host) shouldBe Some("0.9.9")` asserted the test's own fixture, not production.
   - Two new `OpDesc` tests pin ordering that nothing constrained: that `updatePort` is applied by `sourceSchema` *before* it issues any query, and that the unset-field error names host, port, database in that order.
   
   **The survivor, and it is a real gap rather than an equivalent mutant:** adding `cachedTuple = None` to `AsterixDBSourceOpExec.close()` survives all 100 tests. Today, after `hasNext` then `close()`, a fresh `produceTuple()` still hands out the previously peeked row; under the mutant it does not. `close()` clears the iterator and the query string but not the cached tuple. **Neither side is pinned deliberately** — the behaviour looks unintended, and asserting either way would cement a decision nobody has made.
   
   ### Deliberately not included, with bytecode evidence
   
   - **`AsterixDBSourceOpExec:331` can never be fully covered.** `javap` shows offset 225 pushing `iconst_1` unconditionally for the `| _` alternate, so the `ifeq` has a permanently dead side. It went from 4 missed arms to 1 and still reads as partial, moving Codecov by exactly zero.
   - **Lines 227 and 239** are the null-comparison arms of scalac's `==` expansion on `attr.getType`; reaching them needs an `Attribute` carrying a null `AttributeType`.
   - **Line 152's `if (values == null) return null` is dead**: `javap` confirms `CSVParser.parse` returns a `scala.Option`, so `values` is never a Java null.
   - **Line 268** re-checks a condition its only caller already guards, so the false arm cannot occur.
   - `AsterixDBSourceOpDesc` line 177 keeps one arm (mb=1/cb=3) for the same structural reason.
   
   No production file is touched, and no stray `test_large_binary.txt` was left behind.
   
   ### Any related issues, documentation, discussions?
   
   Closes #7956
   
   ### How was this PR tested?
   
   ```
   sbt "WorkflowOperator/testOnly org.apache.texera.amber.operator.source.sql.asterixdb.AsterixDBSourceOpDescSpec org.apache.texera.amber.operator.source.sql.asterixdb.AsterixDBSourceOpExecSpec"
   ```
   
   ```
   [info] Total number of tests run: 68
   [info] Tests: succeeded 68, failed 0, canceled 0, ignored 0, pending 0
   ```
   
   The whole `asterixdb` package is green at 100 tests. `Test/scalafmtCheck` passes.
   
   ### Was this PR authored or co-authored using generative AI tooling?
   
   Generated-by: Claude Code (Opus 5)
   


-- 
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: notifications-unsubscribe@texera.apache.org

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


Re: [PR] test(workflow-operator): close the AsterixDB source descriptor's branch arms [texera]

Posted by "aglinxinyuan (via GitHub)" <gi...@apache.org>.
aglinxinyuan merged PR #7958:
URL: https://github.com/apache/texera/pull/7958


-- 
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: notifications-unsubscribe@texera.apache.org

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


Re: [PR] test(workflow-operator): close the AsterixDB source descriptor's branch arms [texera]

Posted by "codecov-commenter (via GitHub)" <gi...@apache.org>.
codecov-commenter commented on PR #7958:
URL: https://github.com/apache/texera/pull/7958#issuecomment-5406179573

   ## [Codecov](https://app.codecov.io/gh/apache/texera/pull/7958?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report
   :white_check_mark: All modified and coverable lines are covered by tests.
   :white_check_mark: Project coverage is 92.79%. Comparing base ([`3198595`](https://app.codecov.io/gh/apache/texera/commit/319859571e30d123a50081a918815d9b65b4300f?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)) to head ([`8139944`](https://app.codecov.io/gh/apache/texera/commit/813994437180c40b96c36c815ae8f715ff7c3538?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)).
   
   <details><summary>Additional details and impacted files</summary>
   
   
   
   ```diff
   @@            Coverage Diff            @@
   ##               main    #7958   +/-   ##
   =========================================
     Coverage     92.79%   92.79%           
     Complexity     4616     4616           
   =========================================
     Files          1174     1174           
     Lines         47453    47453           
     Branches       5304     5304           
   =========================================
     Hits          44034    44034           
     Misses         1899     1899           
     Partials       1520     1520           
   ```
   
   | [Flag](https://app.codecov.io/gh/apache/texera/pull/7958/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Coverage Δ | | *Carryforward flag |
   |---|---|---|---|
   | [access-control-service](https://app.codecov.io/gh/apache/texera/pull/7958/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `81.00% <ø> (ø)` | | Carriedforward from [3198595](https://app.codecov.io/gh/apache/texera/commit/319859571e30d123a50081a918815d9b65b4300f?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
   | [agent-service](https://app.codecov.io/gh/apache/texera/pull/7958/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `98.62% <ø> (ø)` | | Carriedforward from [3198595](https://app.codecov.io/gh/apache/texera/commit/319859571e30d123a50081a918815d9b65b4300f?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
   | [amber](https://app.codecov.io/gh/apache/texera/pull/7958/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `89.12% <ø> (ø)` | | Carriedforward from [3198595](https://app.codecov.io/gh/apache/texera/commit/319859571e30d123a50081a918815d9b65b4300f?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
   | [computing-unit-managing-service](https://app.codecov.io/gh/apache/texera/pull/7958/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `73.67% <ø> (ø)` | | Carriedforward from [3198595](https://app.codecov.io/gh/apache/texera/commit/319859571e30d123a50081a918815d9b65b4300f?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
   | [config-service](https://app.codecov.io/gh/apache/texera/pull/7958/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `86.73% <ø> (ø)` | | |
   | [file-service](https://app.codecov.io/gh/apache/texera/pull/7958/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `84.48% <ø> (ø)` | | Carriedforward from [3198595](https://app.codecov.io/gh/apache/texera/commit/319859571e30d123a50081a918815d9b65b4300f?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
   | [frontend](https://app.codecov.io/gh/apache/texera/pull/7958/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `95.03% <ø> (ø)` | | Carriedforward from [3198595](https://app.codecov.io/gh/apache/texera/commit/319859571e30d123a50081a918815d9b65b4300f?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
   | [notebook-migration-service](https://app.codecov.io/gh/apache/texera/pull/7958/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `79.13% <ø> (ø)` | | |
   | [pyamber](https://app.codecov.io/gh/apache/texera/pull/7958/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `97.57% <ø> (ø)` | | Carriedforward from [3198595](https://app.codecov.io/gh/apache/texera/commit/319859571e30d123a50081a918815d9b65b4300f?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
   | [workflow-compiling-service](https://app.codecov.io/gh/apache/texera/pull/7958/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `77.19% <ø> (ø)` | | Carriedforward from [3198595](https://app.codecov.io/gh/apache/texera/commit/319859571e30d123a50081a918815d9b65b4300f?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
   
   *This pull request uses carry forward flags. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) to find out more.
   </details>
   
   [:umbrella: View full report in Codecov by Harness](https://app.codecov.io/gh/apache/texera/pull/7958?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).   
   :loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
   <details><summary> :rocket: New features to boost your workflow: </summary>
   
   - :package: [JS Bundle Analysis](https://docs.codecov.com/docs/javascript-bundle-analysis): Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
   </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: notifications-unsubscribe@texera.apache.org

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


Re: [PR] test(workflow-operator): close the AsterixDB source descriptor's branch arms [texera]

Posted by "Copilot (via GitHub)" <gi...@apache.org>.
Copilot commented on code in PR #7958:
URL: https://github.com/apache/texera/pull/7958#discussion_r3850162309


##########
common/workflow-operator/src/test/scala/org/apache/texera/amber/operator/source/sql/asterixdb/AsterixDBSourceOpExecSpec.scala:
##########
@@ -573,6 +588,20 @@ class AsterixDBSourceOpExecSpec
     tableNameRows = Seq("\"other\"\n", "\"twitter\"\n")
     exec.open()
     exec.tableNames.toList shouldBe List("other", "twitter")
+  }
+
+  it should "refresh a stale cached API version when it opens" in {
+    val exec = newExec()
+    // Asserting the mapping straight after open() would be vacuous: the
+    // constructor's own `schema = desc.sourceSchema()` already went through
+    // queryAsterixDB, which fills a MISSING host entry, so `0.9.9` is cached
+    // before open() is ever entered. Overwriting the entry first makes open()'s
+    // explicit refresh the only thing that can restore it - queryAsterixDB
+    // never rewrites an entry that is already present, so a stale version (which
+    // selects a different `format` field) would otherwise survive forever in
+    // this singleton.
+    AsterixDBConnUtil.asterixDBVersionMapping += (host -> "0.0.0")
+    exec.open()
     AsterixDBConnUtil.asterixDBVersionMapping.get(host) shouldBe Some("0.9.9")

Review Comment:
   This test mutates the global singleton `AsterixDBConnUtil.asterixDBVersionMapping` but doesn’t restore it if `exec.open()` throws, which can leak state into later tests and make failures order-dependent. Capture the previous value and restore/remove it in a `finally` block for isolation.



##########
common/workflow-operator/src/test/scala/org/apache/texera/amber/operator/source/sql/asterixdb/AsterixDBSourceOpDescSpec.scala:
##########
@@ -19,18 +19,140 @@
 
 package org.apache.texera.amber.operator.source.sql.asterixdb
 
+import com.sun.net.httpserver.{HttpExchange, HttpServer}
 import org.apache.texera.amber.core.executor.OpExecWithClassName
+import org.apache.texera.amber.core.tuple.{AttributeType, Schema}
 import org.apache.texera.amber.core.workflow.WorkflowContext.{
   DEFAULT_EXECUTION_ID,
   DEFAULT_WORKFLOW_ID
 }
 import org.apache.texera.amber.operator.LogicalOp
 import org.apache.texera.amber.operator.metadata.OperatorGroupConstants
 import org.apache.texera.amber.util.JSONUtils.objectMapper
+import org.scalatest.BeforeAndAfterAll
 import org.scalatest.flatspec.AnyFlatSpec
 import org.scalatest.matchers.should.Matchers
 
-class AsterixDBSourceOpDescSpec extends AnyFlatSpec with Matchers {
+import java.net.{InetSocketAddress, URLDecoder}
+import java.nio.charset.StandardCharsets
+import scala.collection.mutable
+import scala.util.Try
+
+class AsterixDBSourceOpDescSpec extends AnyFlatSpec with Matchers with BeforeAndAfterAll {
+
+  // ---------------------------------------------------------------------------
+  // In-process AsterixDB stub
+  //
+  // sourceSchema() resolves the dataset's datatype over HTTP through
+  // AsterixDBConnUtil, so the type-mapping tests need a reachable server. The
+  // stub answers the two metadata statements sourceSchema() issues and nothing
+  // else; the same approach is used by AsterixDBConnUtilSpec and
+  // AsterixDBSourceOpExecSpec. Binding port 0 keeps it off any fixed port.
+  // ---------------------------------------------------------------------------
+
+  /** Field name -> AsterixDB type the stub reports for the dataset's datatype. */
+  @volatile private var datatypeFields: Seq[(String, String)] = Seq.empty
+
+  /** Decoded `statement` form field of every /query/service request, in order. */
+  private val recordedStatements = mutable.Buffer[String]()
+
+  private val server: HttpServer = HttpServer.create(new InetSocketAddress(0), 0)
+  server.createContext(
+    "/admin/version",
+    (exchange: HttpExchange) => respond(exchange, """{"git.build.version":"0.9.9"}""")
+  )
+  server.createContext(
+    "/query/service",
+    (exchange: HttpExchange) => {
+      val is = exchange.getRequestBody
+      val body =
+        try new String(is.readAllBytes(), StandardCharsets.UTF_8)
+        finally is.close()
+      val statement = formField(body, "statement")
+      recordedStatements.synchronized { recordedStatements += statement }
+      respond(exchange, responseFor(statement))
+    }
+  )
+
+  private val host = "localhost"
+  private def port: String = server.getAddress.getPort.toString
+
+  private def responseFor(statement: String): String =
+    if (statement.contains("Metadata.`Datatype`")) {
+      val fields = datatypeFields
+        .map { case (name, tpe) => s"""{"FieldName":"$name","FieldType":"$tpe"}""" }
+        .mkString(",")
+      s"""{"results":[{"Fields":[$fields]}]}"""
+    } else if (statement.contains("Metadata.`Dataset`")) {
+      """{"results":[{"DatatypeName":"tweetType"}]}"""
+    } else {
+      // Deliberately not a fall-through onto the dataset answer: a statement
+      // aimed at the wrong metadata table must come back empty, so a query the
+      // descriptor mistargets cannot still yield a plausible schema.
+      """{"results":[]}"""
+    }
+
+  private def respond(exchange: HttpExchange, body: String): Unit = {
+    val bytes = body.getBytes(StandardCharsets.UTF_8)
+    exchange.getResponseHeaders.add("Content-Type", "application/json")
+    exchange.sendResponseHeaders(200, bytes.length.toLong)
+    val os = exchange.getResponseBody
+    try os.write(bytes)
+    finally os.close()
+  }
+
+  private def formField(body: String, name: String): String =
+    body
+      .split("&")
+      .filter(_.contains("="))
+      .map { pair =>
+        val idx = pair.indexOf('=')
+        URLDecoder.decode(pair.substring(0, idx), StandardCharsets.UTF_8) ->
+          URLDecoder.decode(pair.substring(idx + 1), StandardCharsets.UTF_8)
+      }
+      .toMap
+      .getOrElse(name, "")
+
+  override protected def beforeAll(): Unit = {
+    super.beforeAll()
+    server.start()
+  }
+
+  override protected def afterAll(): Unit = {
+    try {
+      server.stop(0)
+      // Drop only this suite's key from AsterixDBConnUtil's host-keyed version
+      // cache singleton, so a sibling asterixdb suite keeps its own entry.
+      AsterixDBConnUtil.asterixDBVersionMapping -= host

Review Comment:
   This cleanup comment claims removing `asterixDBVersionMapping -= host` preserves a sibling suite’s entry, but the cache is keyed only by host and this suite hardcodes `host = "localhost"`, so any other suite using the same host key would also be affected. Update the comment to accurately describe the intent (preventing cross-test leakage), rather than implying per-suite isolation that the map keying cannot provide.



##########
common/workflow-operator/src/test/scala/org/apache/texera/amber/operator/source/sql/asterixdb/AsterixDBSourceOpDescSpec.scala:
##########
@@ -100,4 +217,183 @@ class AsterixDBSourceOpDescSpec extends AnyFlatSpec with Matchers {
     r.username shouldBe null
     r.password shouldBe null
   }
+
+  // ---------------------------------------------------------------------------
+  // updatePort
+  // ---------------------------------------------------------------------------
+
+  "AsterixDBSourceOpDesc.updatePort" should
+    "resolve the sentinel `default` to AsterixDB's HTTP API port and leave any other port alone" in {
+    val d = new AsterixDBSourceOpDesc
+    d.port = "default"
+    d.updatePort()
+    d.port shouldBe "19002"
+
+    // The sentinel is recognised through surrounding whitespace.
+    d.port = "  default  "
+    d.updatePort()
+    d.port shouldBe "19002"
+
+    // An explicit port is left exactly as configured.
+    d.port = "19004"
+    d.updatePort()
+    d.port shouldBe "19004"
+  }
+
+  it should "be applied by sourceSchema before it issues any query" in {
+    // `default` is the port the shipped descriptor actually carries (see
+    // TestOperatorsSpec), and sourceSchema's call to updatePort is the only
+    // place in production that ever resolves it. Driving updatePort directly,
+    // as the test above does, cannot tell whether that call site still exists.
+    val d = configured()
+    d.port = "default"
+    // updatePort runs after the four requires and before the first HTTP call,
+    // so what the (unserved) real AsterixDB port answers is irrelevant: the
+    // resolution has already happened by the time the connection is refused.
+    Try(d.sourceSchema())
+    d.port shouldBe "19002"
+  }

Review Comment:
   This test currently drives `sourceSchema()` with `port = "default"`, which resolves to `19002` and then makes real HTTP calls via Unirest to `localhost:19002`. That introduces an external network dependency (and potential flakiness/slow timeouts) into a unit test. Stand up a minimal in-process stub on port 19002 for this test (and stop it in a finally) so the assertion doesn’t depend on the environment.



-- 
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: notifications-unsubscribe@texera.apache.org

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


Re: [PR] test(workflow-operator): close the AsterixDB source descriptor's branch arms [texera]

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

   <!-- texera-benchmarks-comment -->
   ## ⚠️ Benchmark changes need a look
   
   🟢 2 better · 🔴 2 worse · ⚪ 11 noise (<±5%) · 0 without baseline
   
   > Compared against main `3198595` benchmarked on **this same runner**, so the delta is largely free of cross-runner hardware noise. The "7d avg" column still reflects the gh-pages dashboard. Treat <±5% as noise unless repeated.
   
   [Dashboard](https://apache.github.io/texera/dev/bench/) · [Run](https://github.com/apache/texera/actions/runs/32814626947)
   
   | | config | throughput | MB/s | latency | max Δ latest / 7d |
   |---|---|---:|---:|---:|---:|
   | 🔴 | bs=10 sw=10 sl=64 | 376 | 0.229 | 25,918/34,541/34,541 us | 🔴 +8.9% / 🔴 +145.5% |
   | 🟢 | bs=100 sw=10 sl=64 | 809 | 0.494 | 122,859/132,962/132,962 us | 🟢 -8.1% / 🔴 +37.8% |
   | ⚪ | bs=1000 sw=10 sl=64 | 906 | 0.553 | 1,108,700/1,160,973/1,160,973 us | ⚪ within ±5% / 🔴 +25.1% |
   
   <details><summary>Baseline details</summary>
   
   Latest main `3198595` from same runner
   
   | config | metric | PR | latest main | 7d avg | Δ latest | Δ 7d |
   |---|---|---:|---:|---:|---:|---:|
   | bs=10 sw=10 sl=64 | throughput | 376 tuples/sec | 392 tuples/sec | 863.81 tuples/sec | -4.1% | -56.5% |
   | bs=10 sw=10 sl=64 | MB/s | 0.229 MB/s | 0.239 MB/s | 0.527 MB/s | -4.2% | -56.6% |
   | bs=10 sw=10 sl=64 | p50 | 25,918 us | 25,512 us | 11,488 us | +1.6% | +125.6% |
   | bs=10 sw=10 sl=64 | p95 | 34,541 us | 31,705 us | 14,067 us | +8.9% | +145.5% |
   | bs=10 sw=10 sl=64 | p99 | 34,541 us | 31,705 us | 17,591 us | +8.9% | +96.4% |
   | bs=100 sw=10 sl=64 | throughput | 809 tuples/sec | 812 tuples/sec | 1,127 tuples/sec | -0.4% | -28.2% |
   | bs=100 sw=10 sl=64 | MB/s | 0.494 MB/s | 0.496 MB/s | 0.688 MB/s | -0.4% | -28.2% |
   | bs=100 sw=10 sl=64 | p50 | 122,859 us | 122,488 us | 89,893 us | +0.3% | +36.7% |
   | bs=100 sw=10 sl=64 | p95 | 132,962 us | 144,738 us | 96,506 us | -8.1% | +37.8% |
   | bs=100 sw=10 sl=64 | p99 | 132,962 us | 144,738 us | 104,915 us | -8.1% | +26.7% |
   | bs=1000 sw=10 sl=64 | throughput | 906 tuples/sec | 907 tuples/sec | 1,156 tuples/sec | -0.1% | -21.6% |
   | bs=1000 sw=10 sl=64 | MB/s | 0.553 MB/s | 0.554 MB/s | 0.705 MB/s | -0.2% | -21.6% |
   | bs=1000 sw=10 sl=64 | p50 | 1,108,700 us | 1,102,741 us | 886,448 us | +0.5% | +25.1% |
   | bs=1000 sw=10 sl=64 | p95 | 1,160,973 us | 1,132,870 us | 930,093 us | +2.5% | +24.8% |
   | bs=1000 sw=10 sl=64 | p99 | 1,160,973 us | 1,132,870 us | 963,104 us | +2.5% | +20.5% |
   
   </details>
   
   <details><summary>Raw CSV</summary>
   
   ```csv
   config_idx,batch_size,schema_width,string_len,num_batches,total_ms,total_tuples,total_bytes,tuples_per_sec,mb_per_sec,lat_p50_us,lat_p95_us,lat_p99_us
   0,10,10,64,20,532.50,200,128000,376,0.229,25918.20,34540.68,34540.68
   1,100,10,64,20,2473.51,2000,1280000,809,0.494,122859.27,132961.59,132961.59
   2,1000,10,64,20,22076.73,20000,12800000,906,0.553,1108700.29,1160972.63,1160972.63
   ```
   
   </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: notifications-unsubscribe@texera.apache.org

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


Re: [PR] test(workflow-operator): close the AsterixDB source descriptor's branch arms [texera]

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

   <!-- texera-reviewer-suggestion -->
   ### Automated Reviewer Suggestions
   
   Based on the `git blame` history of the changed files, we recommend the following reviewers:
   
   - **Contributors with relevant context:** `@roshiiiz`
     You can notify them by mentioning `@roshiiiz` in a comment.
   


-- 
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: notifications-unsubscribe@texera.apache.org

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