From c4854a590fc9df1ab7461ec4cad87a03cbf8a0df Mon Sep 17 00:00:00 2001 From: Oleksandr Porunov Date: Fri, 8 Oct 2021 17:52:04 +0300 Subject: [PATCH 1/3] Make db-cache configuration parameters maskable Signed-off-by: Oleksandr Porunov --- docs/configs/janusgraph-cfg.md | 4 ++-- .../janusgraph/graphdb/JanusGraphOperationCountingTest.java | 6 +++--- .../main/java/org/janusgraph/graphdb/JanusGraphTest.java | 4 ++-- .../graphdb/configuration/GraphDatabaseConfiguration.java | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/configs/janusgraph-cfg.md b/docs/configs/janusgraph-cfg.md index 3401fa1ccf..442775b0a9 100644 --- a/docs/configs/janusgraph-cfg.md +++ b/docs/configs/janusgraph-cfg.md @@ -19,9 +19,9 @@ Configuration options that modify JanusGraph's caching behavior | Name | Description | Datatype | Default Value | Mutability | | ---- | ---- | ---- | ---- | ---- | | cache.db-cache | Whether to enable JanusGraph's database-level cache, which is shared across all transactions. Enabling this option speeds up traversals by holding hot graph elements in memory, but also increases the likelihood of reading stale data. Disabling it forces each transaction to independently fetch graph elements from storage before reading/writing them. | Boolean | false | MASKABLE | -| cache.db-cache-clean-wait | How long, in milliseconds, database-level cache will keep entries after flushing them. This option is only useful on distributed storage backends that are capable of acknowledging writes without necessarily making them immediately visible. | Integer | 50 | GLOBAL_OFFLINE | +| cache.db-cache-clean-wait | How long, in milliseconds, database-level cache will keep entries after flushing them. This option is only useful on distributed storage backends that are capable of acknowledging writes without necessarily making them immediately visible. | Integer | 50 | MASKABLE | | cache.db-cache-size | Size of JanusGraph's database level cache. Values between 0 and 1 are interpreted as a percentage of VM heap, while larger values are interpreted as an absolute size in bytes. | Double | 0.3 | MASKABLE | -| cache.db-cache-time | Default expiration time, in milliseconds, for entries in the database-level cache. Entries are evicted when they reach this age even if the cache has room to spare. Set to 0 to disable expiration (cache entries live forever or until memory pressure triggers eviction when set to 0). | Long | 10000 | GLOBAL_OFFLINE | +| cache.db-cache-time | Default expiration time, in milliseconds, for entries in the database-level cache. Entries are evicted when they reach this age even if the cache has room to spare. Set to 0 to disable expiration (cache entries live forever or until memory pressure triggers eviction when set to 0). | Long | 10000 | MASKABLE | | cache.tx-cache-size | Maximum size of the transaction-level cache of recently-used vertices. | Integer | 20000 | MASKABLE | | cache.tx-dirty-size | Initial size of the transaction-level cache of uncommitted dirty vertices. This is a performance hint for write-heavy, performance-sensitive transactional workloads. If set, it should roughly match the median vertices modified per transaction. | Integer | (no default value) | MASKABLE | diff --git a/janusgraph-backend-testutils/src/main/java/org/janusgraph/graphdb/JanusGraphOperationCountingTest.java b/janusgraph-backend-testutils/src/main/java/org/janusgraph/graphdb/JanusGraphOperationCountingTest.java index cd38a44487..1ebd6fd54a 100644 --- a/janusgraph-backend-testutils/src/main/java/org/janusgraph/graphdb/JanusGraphOperationCountingTest.java +++ b/janusgraph-backend-testutils/src/main/java/org/janusgraph/graphdb/JanusGraphOperationCountingTest.java @@ -158,7 +158,7 @@ public void testReadOperations(boolean cache) { mgmt.setConsistency(mgmt.getGraphIndex("uid"),ConsistencyModifier.LOCK); finishSchema(); - if (cache) clopen(option(DB_CACHE),true,option(DB_CACHE_CLEAN_WAIT),0,option(DB_CACHE_TIME),0); + if (cache) clopen(option(DB_CACHE),true,option(DB_CACHE_CLEAN_WAIT),0,option(DB_CACHE_TIME),0L); else clopen(); JanusGraphTransaction tx = graph.buildTransaction().groupName(metricsPrefix).start(); @@ -483,7 +483,7 @@ public void printAllMetrics(String prefix) { public void testCacheConcurrency() throws InterruptedException { metricsPrefix = "tCC"; Object[] newConfig = {option(GraphDatabaseConfiguration.DB_CACHE),true, - option(GraphDatabaseConfiguration.DB_CACHE_TIME),0, + option(GraphDatabaseConfiguration.DB_CACHE_TIME),0L, option(GraphDatabaseConfiguration.DB_CACHE_CLEAN_WAIT),0, option(GraphDatabaseConfiguration.DB_CACHE_SIZE),0.25, option(GraphDatabaseConfiguration.BASIC_METRICS),true, @@ -595,7 +595,7 @@ protected void resetMetrics() { @Test public void testCacheSpeedup() { Object[] newConfig = {option(GraphDatabaseConfiguration.DB_CACHE),true, - option(GraphDatabaseConfiguration.DB_CACHE_TIME),0}; + option(GraphDatabaseConfiguration.DB_CACHE_TIME),0L}; clopen(newConfig); int numV = 1000; diff --git a/janusgraph-backend-testutils/src/main/java/org/janusgraph/graphdb/JanusGraphTest.java b/janusgraph-backend-testutils/src/main/java/org/janusgraph/graphdb/JanusGraphTest.java index 91ab8be2bd..130efa7b6f 100644 --- a/janusgraph-backend-testutils/src/main/java/org/janusgraph/graphdb/JanusGraphTest.java +++ b/janusgraph-backend-testutils/src/main/java/org/janusgraph/graphdb/JanusGraphTest.java @@ -185,9 +185,9 @@ import static org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration.CUSTOM_ATTRIBUTE_CLASS; import static org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration.CUSTOM_SERIALIZER_CLASS; import static org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration.DB_CACHE; -import static org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration.DB_CACHE_TIME; import static org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration.FORCE_INDEX_USAGE; import static org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration.HARD_MAX_LIMIT; +import static org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration.IDS_STORE_NAME; import static org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration.INITIAL_JANUSGRAPH_VERSION; import static org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration.LIMIT_BATCH_SIZE; import static org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration.LOG_BACKEND; @@ -2740,7 +2740,7 @@ public void testGlobalGraphConfig() { @Test public void testGlobalOfflineGraphConfig() { - setAndCheckGraphOption(DB_CACHE_TIME, ConfigOption.Type.GLOBAL_OFFLINE, 500L, 777L); + setAndCheckGraphOption(IDS_STORE_NAME, ConfigOption.Type.GLOBAL_OFFLINE, "testIdsStoreName", "testIdsStoreName2"); } @Test diff --git a/janusgraph-core/src/main/java/org/janusgraph/graphdb/configuration/GraphDatabaseConfiguration.java b/janusgraph-core/src/main/java/org/janusgraph/graphdb/configuration/GraphDatabaseConfiguration.java index 3bd1867338..b5b0fd1b37 100644 --- a/janusgraph-core/src/main/java/org/janusgraph/graphdb/configuration/GraphDatabaseConfiguration.java +++ b/janusgraph-core/src/main/java/org/janusgraph/graphdb/configuration/GraphDatabaseConfiguration.java @@ -376,7 +376,7 @@ public boolean apply(@Nullable String s) { "How long, in milliseconds, database-level cache will keep entries after flushing them. " + "This option is only useful on distributed storage backends that are capable of acknowledging writes " + "without necessarily making them immediately visible.", - ConfigOption.Type.GLOBAL_OFFLINE, 50); + ConfigOption.Type.MASKABLE, 50); /** * The default expiration time for elements held in the database level cache. This is the time period before @@ -389,7 +389,7 @@ public boolean apply(@Nullable String s) { "Entries are evicted when they reach this age even if the cache has room to spare. " + "Set to 0 to disable expiration (cache entries live forever or until memory pressure " + "triggers eviction when set to 0).", - ConfigOption.Type.GLOBAL_OFFLINE, 10000L); + ConfigOption.Type.MASKABLE, 10000L); /** * Configures the maximum number of recently-used vertices cached by a transaction. The smaller the cache size, the From 1f7ea13f50567d21f4a5ed50fdc6a0211d560cb8 Mon Sep 17 00:00:00 2001 From: Oleksandr Porunov Date: Mon, 16 Aug 2021 13:26:56 +0300 Subject: [PATCH 2/3] Mapped CI release Signed-off-by: Oleksandr Porunov --- .github/workflows/ci-mapped.yml | 43 +++++++++++++++++++++++++++++++++ pom.xml | 10 +++++--- 2 files changed, 49 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/ci-mapped.yml diff --git a/.github/workflows/ci-mapped.yml b/.github/workflows/ci-mapped.yml new file mode 100644 index 0000000000..891ad8fe61 --- /dev/null +++ b/.github/workflows/ci-mapped.yml @@ -0,0 +1,43 @@ +# Copyright 2021 JanusGraph Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: Publish package to GitHub Packages +on: + release: + types: [created] +jobs: + publish: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-java@v2 + with: + java-version: '8' + distribution: 'adopt' + + - name: Setup unique version + run: mvn versions:set -DnewVersion=$(date +%s) -DgenerateBackupPoms=false + + - name: Compile and prepare release + run: mvn clean install -Pjanusgraph-release -Dgpg.skip=true -DskipTests=true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Deploy release + run: mvn deploy -Pjanusgraph-release -Dgpg.skip=true -DskipTests=true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/pom.xml b/pom.xml index 47382ea7eb..18ca2089ea 100644 --- a/pom.xml +++ b/pom.xml @@ -61,12 +61,14 @@ - ossrh - https://oss.sonatype.org/content/repositories/snapshots + github + GitHub Packages + https://maven.pkg.github.com/mapped/janusgraph - ossrh - https://oss.sonatype.org/service/local/staging/deploy/maven2/ + github + GitHub Packages + https://maven.pkg.github.com/mapped/janusgraph From ffc6fae0b1723aedceebff2975170e606c781d81 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Oct 2021 11:05:21 +0000 Subject: [PATCH 3/3] Bump commons-lang3 from 3.11 to 3.12.0 Bumps commons-lang3 from 3.11 to 3.12.0. --- updated-dependencies: - dependency-name: org.apache.commons:commons-lang3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 18ca2089ea..7ba7be9907 100644 --- a/pom.xml +++ b/pom.xml @@ -676,7 +676,7 @@ org.apache.commons commons-lang3 - 3.11 + 3.12.0 commons-configuration