Skip to content

Commit 8866556

Browse files
committed
Deploying to master from @ JanusGraph/janusgraph@0cb87d3 🚀
1 parent fb57727 commit 8866556

13 files changed

Lines changed: 63 additions & 3 deletions

File tree

master/changelog/index.html

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2049,6 +2049,20 @@
20492049
JSON schema initializer
20502050
</a>
20512051

2052+
</li>
2053+
2054+
<li class="md-nav__item">
2055+
<a href="#batched-queries-enhancement-introduction-of-janusgraphnoopbarriervertexonlystep" class="md-nav__link">
2056+
Batched Queries Enhancement: Introduction of JanusGraphNoOpBarrierVertexOnlyStep
2057+
</a>
2058+
2059+
</li>
2060+
2061+
<li class="md-nav__item">
2062+
<a href="#batch-query-optimizations-now-support-traversals-containing-the-drop-step" class="md-nav__link">
2063+
Batch Query Optimizations Now Support Traversals Containing the drop() Step
2064+
</a>
2065+
20522066
</li>
20532067

20542068
</ul>
@@ -3176,6 +3190,20 @@
31763190
JSON schema initializer
31773191
</a>
31783192

3193+
</li>
3194+
3195+
<li class="md-nav__item">
3196+
<a href="#batched-queries-enhancement-introduction-of-janusgraphnoopbarriervertexonlystep" class="md-nav__link">
3197+
Batched Queries Enhancement: Introduction of JanusGraphNoOpBarrierVertexOnlyStep
3198+
</a>
3199+
3200+
</li>
3201+
3202+
<li class="md-nav__item">
3203+
<a href="#batch-query-optimizations-now-support-traversals-containing-the-drop-step" class="md-nav__link">
3204+
Batch Query Optimizations Now Support Traversals Containing the drop() Step
3205+
</a>
3206+
31793207
</li>
31803208

31813209
</ul>
@@ -4432,6 +4460,23 @@ <h5 id="berkeleyje-ability-to-overwrite-arbitrary-settings-applied-at-environmen
44324460
<h5 id="json-schema-initializer">JSON schema initializer</h5>
44334461
<p>For simplicity JSON schema initialization options has been added into JanusGraph.
44344462
See <a href="../schema/schema-init-strategies/">documentation</a> to learn more about JSON schema initialization process.</p>
4463+
<h5 id="batched-queries-enhancement-introduction-of-janusgraphnoopbarriervertexonlystep">Batched Queries Enhancement: Introduction of <code>JanusGraphNoOpBarrierVertexOnlyStep</code></h5>
4464+
<p>In previous versions, when a query that could benefit from batch-query optimization (multi-query) was executed without
4465+
a user-defined barrier step, JanusGraph would inject a <code>NoOpBarrierStep</code> by default. This approach allowed batching
4466+
for edges and properties, which do not gain advantages from multi-query optimization.</p>
4467+
<p>Starting with JanusGraph 1.1.0, this behavior has been improved. The system now injects a
4468+
<code>JanusGraphNoOpBarrierVertexOnlyStep</code> instead of the standard <code>NoOpBarrierStep</code> when no barrier steps are detected.
4469+
This change ensures that batching is applied exclusively to vertices, which do benefit from batch queries,
4470+
while excluding edges and properties from the batching process.</p>
4471+
<p>If a user explicitly defines a <code>.barrier()</code> step in the query, the system will continue to use the <code>NoOpBarrierStep</code> as expected.</p>
4472+
<h5 id="batch-query-optimizations-now-support-traversals-containing-the-drop-step">Batch Query Optimizations Now Support Traversals Containing the <code>drop()</code> Step</h5>
4473+
<p>Starting with JanusGraph 1.1.0, batch optimizations for vertex removal have been introduced in the <code>drop()</code> step and
4474+
are enabled by default. Previously, any batch optimization would be skipped for queries containing at least one
4475+
<code>drop()</code> step. However, with this update, such queries are now eligible for batch query optimization (multi-query).</p>
4476+
<p>Please note that the <code>LazyBarrierStrategy</code> (a TinkerPop strategy) is disabled for any query that includes at least one <code>drop()</code> step.</p>
4477+
<p>To disable the <code>drop()</code> step optimization and maintain the previous behavior, users can set the following configuration:
4478+
<div class="highlight"><pre><span></span><code>query.batch.drop-step-mode=none
4479+
</code></pre></div></p>
44354480
<h3 id="version-101-release-date">Version 1.0.1 (Release Date: ???)</h3>
44364481
<div class="tabbed-set tabbed-alternate" data-tabs="2:2"><input checked="checked" id="__tabbed_2_1" name="__tabbed_2" type="radio" /><input id="__tabbed_2_2" name="__tabbed_2" type="radio" /><div class="tabbed-labels"><label for="__tabbed_2_1">Maven</label><label for="__tabbed_2_2">Gradle</label></div>
44374482
<div class="tabbed-content">

master/configs/configuration-reference/index.html

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4331,6 +4331,13 @@ <h3 id="querybatch">query.batch</h3>
43314331
</thead>
43324332
<tbody>
43334333
<tr>
4334+
<td>query.batch.drop-step-mode</td>
4335+
<td>Batching mode for <code>drop()</code> step. Used only when <code>query.batch.enabled</code> is <code>true</code>.<br>Supported modes:<br>- <code>all</code> - Drops all vertices in a batch.<br>- <code>none</code> - Skips drop batching optimization.<br></td>
4336+
<td>String</td>
4337+
<td>all</td>
4338+
<td>MASKABLE</td>
4339+
</tr>
4340+
<tr>
43344341
<td>query.batch.enabled</td>
43354342
<td>Whether traversal queries should be batched when executed against the storage backend. This can lead to significant performance improvement if there is a non-trivial latency to the backend. If <code>false</code> then all other configuration options under <code>query.batch</code> namespace are ignored.</td>
43364343
<td>Boolean</td>

master/configs/janusgraph-cfg/index.html

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3798,6 +3798,13 @@ <h3 id="querybatch">query.batch</h3>
37983798
</thead>
37993799
<tbody>
38003800
<tr>
3801+
<td>query.batch.drop-step-mode</td>
3802+
<td>Batching mode for <code>drop()</code> step. Used only when <code>query.batch.enabled</code> is <code>true</code>.<br>Supported modes:<br>- <code>all</code> - Drops all vertices in a batch.<br>- <code>none</code> - Skips drop batching optimization.<br></td>
3803+
<td>String</td>
3804+
<td>all</td>
3805+
<td>MASKABLE</td>
3806+
</tr>
3807+
<tr>
38013808
<td>query.batch.enabled</td>
38023809
<td>Whether traversal queries should be batched when executed against the storage backend. This can lead to significant performance improvement if there is a non-trivial latency to the backend. If <code>false</code> then all other configuration options under <code>query.batch</code> namespace are ignored.</td>
38033810
<td>Boolean</td>

master/operations/batch-processing/index.html

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2503,7 +2503,7 @@ <h2 id="batched-query-processing-flow">Batched Query Processing Flow</h2>
25032503
<ol>
25042504
<li>Batch compatible step. This is the step which will execute batch requests. Currently, the list of such steps
25052505
is the next: <code>out()</code>, <code>in()</code>, <code>both()</code>, <code>inE()</code>, <code>outE()</code>, <code>bothE()</code>, <code>has()</code>, <code>values()</code>, <code>properties()</code>, <code>valueMap()</code>,
2506-
<code>propertyMap()</code>, <code>elementMap()</code>, <code>label()</code>.</li>
2506+
<code>propertyMap()</code>, <code>elementMap()</code>, <code>label()</code>, <code>drop()</code>.</li>
25072507
<li>Parent step. This is a parent step which has local traversals with the same start. Such parent steps also implement the
25082508
interface <code>TraversalParent</code>. There are many such steps, but as for an example those could be: <code>and(...)</code>, <code>or(...)</code>,
25092509
<code>not(...)</code>, <code>order().by(...)</code>, <code>project("valueA", "valueB", "valueC").by(...).by(...).by(...)</code>, <code>union(..., ..., ...)</code>,
@@ -2653,7 +2653,8 @@ <h4 id="batch-processing-for-properties">Batch processing for properties</h4>
26532653
See configuration option <code>query.batch.has-step-mode</code> to control properties pre-fetching behaviour for <code>has</code> step.<br />
26542654
See configuration option <code>query.batch.properties-mode</code> to control properties pre-fetching behaviour for <code>values</code>,
26552655
<code>properties</code>, <code>valueMap</code>, <code>propertyMap</code>, and <code>elementMap</code> steps.<br />
2656-
See configuration option <code>query.batch.label-step-mode</code> to control labels pre-fetching behaviour for <code>label</code> step. </p>
2656+
See configuration option <code>query.batch.label-step-mode</code> to control labels pre-fetching behaviour for <code>label</code> step.<br />
2657+
See configuration option <code>query.batch.drop-step-mode</code> to control drop batching behaviour for <code>drop</code> step. </p>
26572658

26582659

26592660

master/search/search_index.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

master/sitemap.xml.gz

0 Bytes
Binary file not shown.

sitemap.xml.gz

0 Bytes
Binary file not shown.

v0.2/sitemap.xml.gz

0 Bytes
Binary file not shown.

v0.3/sitemap.xml.gz

0 Bytes
Binary file not shown.

v0.4/sitemap.xml.gz

0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)