Skip to content

Commit fe45b43

Browse files
committed
Deploying to master from @ JanusGraph/janusgraph@e849077 🚀
1 parent 0a2b15e commit fe45b43

13 files changed

Lines changed: 191 additions & 8 deletions

File tree

master/changelog/index.html

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2000,21 +2000,28 @@
20002000
Assets
20012001
</a>
20022002

2003-
<nav class="md-nav" aria-label="Assets">
2004-
<ul class="md-nav__list">
2003+
</li>
20052004

20062005
<li class="md-nav__item">
20072006
<a href="#upgrade-instructions" class="md-nav__link">
20082007
Upgrade Instructions
20092008
</a>
20102009

2011-
</li>
2010+
<nav class="md-nav" aria-label="Upgrade Instructions">
2011+
<ul class="md-nav__list">
20122012

20132013
<li class="md-nav__item">
20142014
<a href="#inlining-vertex-properties-into-a-composite-index" class="md-nav__link">
20152015
Inlining vertex properties into a Composite Index
20162016
</a>
20172017

2018+
</li>
2019+
2020+
<li class="md-nav__item">
2021+
<a href="#berkeleyje-ability-to-overwrite-arbitrary-settings-applied-at-environmentconfig-creation" class="md-nav__link">
2022+
BerkeleyJE ability to overwrite arbitrary settings applied at EnvironmentConfig creation
2023+
</a>
2024+
20182025
</li>
20192026

20202027
</ul>
@@ -3113,21 +3120,28 @@
31133120
Assets
31143121
</a>
31153122

3116-
<nav class="md-nav" aria-label="Assets">
3117-
<ul class="md-nav__list">
3123+
</li>
31183124

31193125
<li class="md-nav__item">
31203126
<a href="#upgrade-instructions" class="md-nav__link">
31213127
Upgrade Instructions
31223128
</a>
31233129

3124-
</li>
3130+
<nav class="md-nav" aria-label="Upgrade Instructions">
3131+
<ul class="md-nav__list">
31253132

31263133
<li class="md-nav__item">
31273134
<a href="#inlining-vertex-properties-into-a-composite-index" class="md-nav__link">
31283135
Inlining vertex properties into a Composite Index
31293136
</a>
31303137

3138+
</li>
3139+
3140+
<li class="md-nav__item">
3141+
<a href="#berkeleyje-ability-to-overwrite-arbitrary-settings-applied-at-environmentconfig-creation" class="md-nav__link">
3142+
BerkeleyJE ability to overwrite arbitrary settings applied at EnvironmentConfig creation
3143+
</a>
3144+
31313145
</li>
31323146

31333147
</ul>
@@ -4360,7 +4374,7 @@ <h4 id="assets">Assets</h4>
43604374
<li><a href="https://github.com/JanusGraph/janusgraph/releases/download/v1.1.0/janusgraph-1.1.0.zip">JanusGraph zip</a></li>
43614375
<li><a href="https://github.com/JanusGraph/janusgraph/releases/download/v1.1.0/janusgraph-full-1.1.0.zip">JanusGraph zip with embedded Cassandra and ElasticSearch</a></li>
43624376
</ul>
4363-
<h5 id="upgrade-instructions">Upgrade Instructions</h5>
4377+
<h4 id="upgrade-instructions">Upgrade Instructions</h4>
43644378
<h5 id="inlining-vertex-properties-into-a-composite-index">Inlining vertex properties into a Composite Index</h5>
43654379
<p>Inlining vertex properties into a Composite Index structure can offer significant performance and efficiency benefits.
43664380
See <a href="../schema/index-management/index-performance/#inlining-vertex-properties-into-a-composite-index">documentation</a> on how to inline vertex properties into a composite index.</p>
@@ -4377,6 +4391,13 @@ <h5 id="inlining-vertex-properties-into-a-composite-index">Inlining vertex prope
43774391
to revert to an older version of JanusGraph once this feature is used.</p>
43784392
</li>
43794393
</ol>
4394+
<h5 id="berkeleyje-ability-to-overwrite-arbitrary-settings-applied-at-environmentconfig-creation">BerkeleyJE ability to overwrite arbitrary settings applied at <code>EnvironmentConfig</code> creation</h5>
4395+
<p>The new namespace <code>storage.berkeleyje.ext</code> now allows to set custom configurations which were not directly exposed by
4396+
JanusGraph.
4397+
The full list of possible setting is available inside the Java class <code>com.sleepycat.je.EnvironmentConfig</code>.
4398+
All configurations values should be specified as <code>String</code> and be formated the same as specified in the official sleepycat
4399+
<a href="https://docs.oracle.com/cd/E17277_02/html/java/com/sleepycat/je/EnvironmentConfig.html">documentation</a>.
4400+
Example: <code>storage.berkeleyje.ext.je.lock.timeout=5000 ms</code></p>
43804401
<h3 id="version-101-release-date">Version 1.0.1 (Release Date: ???)</h3>
43814402
<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>
43824403
<div class="tabbed-content">

master/configs/configuration-reference/index.html

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -942,6 +942,13 @@
942942
storage.berkeleyje
943943
</a>
944944

945+
</li>
946+
947+
<li class="md-nav__item">
948+
<a href="#storageberkeleyjeext" class="md-nav__link">
949+
storage.berkeleyje.ext
950+
</a>
951+
945952
</li>
946953

947954
<li class="md-nav__item">
@@ -2619,6 +2626,13 @@
26192626
storage.berkeleyje
26202627
</a>
26212628

2629+
</li>
2630+
2631+
<li class="md-nav__item">
2632+
<a href="#storageberkeleyjeext" class="md-nav__link">
2633+
storage.berkeleyje.ext
2634+
</a>
2635+
26222636
</li>
26232637

26242638
<li class="md-nav__item">
@@ -4560,6 +4574,44 @@ <h3 id="storageberkeleyje">storage.berkeleyje</h3>
45604574
</tr>
45614575
</tbody>
45624576
</table>
4577+
<h3 id="storageberkeleyjeext">storage.berkeleyje.ext</h3>
4578+
<p>Overrides for arbitrary settings applied at <code>EnvironmentConfig</code> creation.
4579+
The full list of possible setting is available inside the Java class <code>com.sleepycat.je.EnvironmentConfig</code>. All configurations values should be specified as <code>String</code> and be formated the same as specified in the following <a href="https://docs.oracle.com/cd/E17277_02/html/java/com/sleepycat/je/EnvironmentConfig.html">documentation</a>.
4580+
Notice, for compatibility reasons, it's allowed to use <code>-</code> character instead of <code>.</code> for config keys. All dashes will be replaced by dots when passing those keys to <code>EnvironmentConfig</code>.</p>
4581+
<table>
4582+
<thead>
4583+
<tr>
4584+
<th>Name</th>
4585+
<th>Description</th>
4586+
<th>Datatype</th>
4587+
<th>Default Value</th>
4588+
<th>Mutability</th>
4589+
</tr>
4590+
</thead>
4591+
<tbody>
4592+
<tr>
4593+
<td>storage.berkeleyje.ext.je-lock-timeout</td>
4594+
<td>Lock timeout configuration. <code>0</code> disabled lock timeout completely. To set lock timeout via this configuration it's required to use String formated time representation. For example: <code>500 ms</code>, <code>5 min</code>, etc.</td>
4595+
<td></td>
4596+
<td></td>
4597+
<td></td>
4598+
</tr>
4599+
<tr>
4600+
<td>See information about value constraints in the official <a href="https://docs.oracle.com/cd/E17277_02/html/java/com/sleepycat/je/EnvironmentConfig.html#LOCK_TIMEOUT">sleepycat documentation</a>.</td>
4601+
<td></td>
4602+
<td></td>
4603+
<td></td>
4604+
<td></td>
4605+
</tr>
4606+
<tr>
4607+
<td>Notice, this option can be specified as <code>storage.berkeleyje.ext.je.lock.timeout</code> which will be treated the same as this configuration option.</td>
4608+
<td>String</td>
4609+
<td>(no default value)</td>
4610+
<td>MASKABLE</td>
4611+
<td></td>
4612+
</tr>
4613+
</tbody>
4614+
</table>
45634615
<h3 id="storagecql">storage.cql</h3>
45644616
<p>CQL storage backend options</p>
45654617
<table>

master/configs/janusgraph-cfg/index.html

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2165,6 +2165,13 @@
21652165
storage.berkeleyje
21662166
</a>
21672167

2168+
</li>
2169+
2170+
<li class="md-nav__item">
2171+
<a href="#storageberkeleyjeext" class="md-nav__link">
2172+
storage.berkeleyje.ext
2173+
</a>
2174+
21682175
</li>
21692176

21702177
<li class="md-nav__item">
@@ -4048,6 +4055,44 @@ <h3 id="storageberkeleyje">storage.berkeleyje</h3>
40484055
</tr>
40494056
</tbody>
40504057
</table>
4058+
<h3 id="storageberkeleyjeext">storage.berkeleyje.ext</h3>
4059+
<p>Overrides for arbitrary settings applied at <code>EnvironmentConfig</code> creation.
4060+
The full list of possible setting is available inside the Java class <code>com.sleepycat.je.EnvironmentConfig</code>. All configurations values should be specified as <code>String</code> and be formated the same as specified in the following <a href="https://docs.oracle.com/cd/E17277_02/html/java/com/sleepycat/je/EnvironmentConfig.html">documentation</a>.
4061+
Notice, for compatibility reasons, it's allowed to use <code>-</code> character instead of <code>.</code> for config keys. All dashes will be replaced by dots when passing those keys to <code>EnvironmentConfig</code>.</p>
4062+
<table>
4063+
<thead>
4064+
<tr>
4065+
<th>Name</th>
4066+
<th>Description</th>
4067+
<th>Datatype</th>
4068+
<th>Default Value</th>
4069+
<th>Mutability</th>
4070+
</tr>
4071+
</thead>
4072+
<tbody>
4073+
<tr>
4074+
<td>storage.berkeleyje.ext.je-lock-timeout</td>
4075+
<td>Lock timeout configuration. <code>0</code> disabled lock timeout completely. To set lock timeout via this configuration it's required to use String formated time representation. For example: <code>500 ms</code>, <code>5 min</code>, etc.</td>
4076+
<td></td>
4077+
<td></td>
4078+
<td></td>
4079+
</tr>
4080+
<tr>
4081+
<td>See information about value constraints in the official <a href="https://docs.oracle.com/cd/E17277_02/html/java/com/sleepycat/je/EnvironmentConfig.html#LOCK_TIMEOUT">sleepycat documentation</a>.</td>
4082+
<td></td>
4083+
<td></td>
4084+
<td></td>
4085+
<td></td>
4086+
</tr>
4087+
<tr>
4088+
<td>Notice, this option can be specified as <code>storage.berkeleyje.ext.je.lock.timeout</code> which will be treated the same as this configuration option.</td>
4089+
<td>String</td>
4090+
<td>(no default value)</td>
4091+
<td>MASKABLE</td>
4092+
<td></td>
4093+
</tr>
4094+
</tbody>
4095+
</table>
40514096
<h3 id="storagecql">storage.cql</h3>
40524097
<p>CQL storage backend options</p>
40534098
<table>

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.

master/storage-backend/bdb/index.html

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1405,6 +1405,20 @@
14051405
Global Graph Operations
14061406
</a>
14071407

1408+
</li>
1409+
1410+
<li class="md-nav__item">
1411+
<a href="#additional-berkeleydb-je-configuration-options" class="md-nav__link">
1412+
Additional BerkeleyDB JE configuration options
1413+
</a>
1414+
1415+
</li>
1416+
1417+
<li class="md-nav__item">
1418+
<a href="#deadlock-troubleshooting" class="md-nav__link">
1419+
Deadlock troubleshooting
1420+
</a>
1421+
14081422
</li>
14091423

14101424
</ul>
@@ -2024,6 +2038,20 @@
20242038
Global Graph Operations
20252039
</a>
20262040

2041+
</li>
2042+
2043+
<li class="md-nav__item">
2044+
<a href="#additional-berkeleydb-je-configuration-options" class="md-nav__link">
2045+
Additional BerkeleyDB JE configuration options
2046+
</a>
2047+
2048+
</li>
2049+
2050+
<li class="md-nav__item">
2051+
<a href="#deadlock-troubleshooting" class="md-nav__link">
2052+
Deadlock troubleshooting
2053+
</a>
2054+
20272055
</li>
20282056

20292057
</ul>
@@ -2118,6 +2146,43 @@ <h2 id="global-graph-operations">Global Graph Operations</h2>
21182146
transactions enabled requires BerkeleyDB to acquire read locks on the
21192147
data it is reading. When iterating over the entire graph, these read
21202148
locks can easily require more memory than is available.</p>
2149+
<h2 id="additional-berkeleydb-je-configuration-options">Additional BerkeleyDB JE configuration options</h2>
2150+
<p>It's possible to set additional BerkeleyDB JE configuration which are not
2151+
directly exposed by JanusGraph by leveraging <code>storage.berkeleyje.ext</code>
2152+
namespace. </p>
2153+
<p>JanusGraph iterates over all properties prefixed with
2154+
<code>storage.berkeleyje.ext.</code>. It strips the prefix from each property key.
2155+
Any dash character (<code>-</code>) wil be replaced by dot character (<code>.</code>) in the
2156+
remainder of the stripped key. The final string will be interpreted as a parameter
2157+
ke for <code>com.sleepycat.je.EnvironmentConfig</code>.
2158+
Thus, both options <code>storage.berkeleyje.ext.je.lock.timeout</code> and
2159+
<code>storage.berkeleyje.ext.je-lock-timeout</code> will be treated
2160+
the same (as <code>storage.berkeleyje.ext.je.lock.timeout</code>).
2161+
The value associated with the key is not modified.
2162+
This allows embedding arbitrary settings in JanusGraph’s properties. Here’s an
2163+
example configuration fragment that customizes three BerkeleyDB settings
2164+
using the <code>storage.berkeleyje.ext.</code> config mechanism:</p>
2165+
<div class="highlight"><pre><span></span><code><span class="na">storage.backend</span><span class="o">=</span><span class="s">berkeleyje</span>
2166+
<span class="na">storage.berkeleyje.ext.je.lock.timeout</span><span class="o">=</span><span class="s">5000 ms</span>
2167+
<span class="na">storage.berkeleyje.ext.je.lock.deadlockDetect</span><span class="o">=</span><span class="s">false</span>
2168+
<span class="na">storage.berkeleyje.ext.je.txn.timeout</span><span class="o">=</span><span class="s">5000 ms</span>
2169+
<span class="na">storage.berkeleyje.ext.je.log.fileMax</span><span class="o">=</span><span class="s">100000000</span>
2170+
</code></pre></div>
2171+
<h2 id="deadlock-troubleshooting">Deadlock troubleshooting</h2>
2172+
<p>In concurrent environment deadlocks are possible when using BerkeleyDB JE storage
2173+
backend.
2174+
It may be complicated to deal with deadlocks in use-cases when multiple threads are
2175+
modifying same vertices (including edges creation between affected vertices).
2176+
More insights on this topic can be found in the GitHub issue
2177+
<a href="https://github.com/JanusGraph/janusgraph/issues/1623">#1623</a>.</p>
2178+
<p>Some users suggest the following configuration to deal with deadlocks:
2179+
<div class="highlight"><pre><span></span><code><span class="na">storage.berkeleyje.isolation-level</span><span class="o">=</span><span class="s">READ_UNCOMMITTED</span>
2180+
<span class="na">storage.berkeleyje.lock-mode</span><span class="o">=</span><span class="s">LockMode.READ_UNCOMMITTED</span>
2181+
<span class="na">storage.berkeleyje.ext.je.lock.timeout</span><span class="o">=</span><span class="s">0</span>
2182+
<span class="na">storage.lock.wait-time</span><span class="o">=</span><span class="s">5000</span>
2183+
<span class="na">ids.authority.wait-time</span><span class="o">=</span><span class="s">2000</span>
2184+
<span class="na">tx.max-commit-time</span><span class="o">=</span><span class="s">30000</span>
2185+
</code></pre></div></p>
21212186

21222187

21232188

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)