You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/groovy/conceptual/query-engine/parallelization.md
+4-1Lines changed: 4 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -85,7 +85,10 @@ The [`ConcurrencyControl`](https://docs.deephaven.io/core/javadoc/io/deephaven/a
85
85
To explicitly mark a `Selectable` or `Filter` as stateful, use the `withSerial` method.
86
86
87
87
- A serial `Filter` cannot be reordered with respect to other `Filter`s. Every input row to a stateful `Filter` is evaluated in order.
88
-
- When a `Selectable` is serial, then every row for that column is evaluated in order. For `Selectable`s, no additional ordering between expressions is imposed. As with every `select` or `update` call, if column B references column A, then the necessary inputs to column B from column A are evaluated before column B is evaluated. To impose further ordering constraints, use barriers.
88
+
- When a `Selectable` is serial, then every row for that column is evaluated in order.
89
+
- For `Selectable`s, additional ordering constraints are controlled by the value of the `QueryTable.SERIAL_SELECT_IMPLICIT_BARRIERS`. This is set by the property `QueryTable.serialSelectImplicitBarriers` (defaulting to the value of `QueryTable.statelessSelectByDefault`).
90
+
- If `QueryTable.SERIAL_SELECT_IMPLICIT_BARRIERS` is false, no additional ordering between expressions is imposed. As with every `select` or `update` call, if column B references column A, then the necessary inputs to column B from column A are evaluated before column B is evaluated. To impose further ordering constraints, use barriers.
91
+
- If `QueryTable.SERIAL_SELECT_IMPLICIT_BARRIERS` is true, then a serial `Selectable` is an absolute barrier with respect to all other serial `Selectable`s. This prohibits serial `Selectable`s from being evaluated concurrently, permitting them to access global state. `Selectable`s that are not serial may be reordered with respect to a serial selectable.
89
92
90
93
`Filter`s and `Selectable`s may declare a _barrier_. A barrier is an opaque object (compared using reference equality) that is used to mark a particular `Filter` or `Selectable`. Subsequent `Filter`s or `Selectable`s may respect a previously declared barrier. If a `Filter` respects a barrier, that `Filter` cannot begin evaluation until the `Filter` that declares the barrier has been completely evaluated. Similarly, if a `Selectable` respects a barrier, it cannot begin evaluation until the `Selectable` that declared the barrier has been completely evaluated.
0 commit comments