Skip to content

Commit

Permalink
Drop hbase 1 support
Browse files Browse the repository at this point in the history
* Add release tests for hbase
* Remove combat tooling
* Get rid of old guava code

Signed-off-by: Jan Jansen <jan.jansen@gdata.de>
  • Loading branch information
farodin91 committed Nov 30, 2021
1 parent 5c36539 commit a17a1ea
Show file tree
Hide file tree
Showing 43 changed files with 497 additions and 1,426 deletions.
12 changes: 0 additions & 12 deletions .github/workflows/ci-backend-hbase.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,24 +61,12 @@ jobs:
matrix:
include:
- module: hbase
args: "-Dtest=\"**/diskstorage/hbase/*\""
name: hbase1-diskstorage
- module: hbase
args: "-Dtest=\"**/graphdb/hbase/*\""
name: hbase1-graphdb
- module: hbase
args: "-Dtest=\"**/hadoop/*\""
name: hbase1-hadoop
- module: hbase
install-args: "-Dhbase.profile -Phbase2"
args: "-Dtest=\"**/diskstorage/hbase/*\""
name: hbase2-diskstorage
- module: hbase
install-args: "-Dhbase.profile -Phbase2"
args: "-Dtest=\"**/graphdb/hbase/*\""
name: hbase2-graphdb
- module: hbase
install-args: "-Dhbase.profile -Phbase2"
args: "-Dtest=\"**/hadoop/*\""
name: hbase2-hadoop
steps:
Expand Down
3 changes: 0 additions & 3 deletions .github/workflows/ci-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -121,9 +121,6 @@ jobs:
args: "-Pcassandra3-murmur -Dtest.skip.tp=false -DskipTests=true"
- module: hbase
args: "-Dtest.skip.tp=false -DskipTests=true"
- module: hbase
install-args: "-Dhbase.profile -Phbase2"
args: "-Dtest.skip.tp=false -DskipTests=true"
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
Expand Down
6 changes: 4 additions & 2 deletions docs/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,9 @@ For more information on features and bug fixes in 1.0.0, see the GitHub mileston
* [JanusGraph zip with embedded Cassandra and ElasticSearch](https://github.com/JanusGraph/janusgraph/releases/download/v1.0.0/janusgraph-full-1.0.0.zip)

#### Upgrade Instructions
##### Drop support for HBase 1

We are dropping support for HBase 1.

### Version 0.6.0 (Release Date: September 3, 2021)

Expand All @@ -100,7 +103,7 @@ compile "org.janusgraph:janusgraph-core:0.6.0"
**Tested Compatibility:**

* Apache Cassandra 3.0.14, 3.11.10
* Apache HBase 1.6.0, 2.2.7
* Apache HBase 2.2.7
* Google Bigtable 1.3.0, 1.4.0, 1.5.0, 1.6.0, 1.7.0, 1.8.0, 1.9.0, 1.10.0, 1.11.0, 1.14.0
* Oracle BerkeleyJE 7.5.11
* Elasticsearch 6.0.1, 6.6.0, 7.14.0
Expand Down Expand Up @@ -370,7 +373,6 @@ distance, where previously they used the backend's default max distance of 2:
| surprises | surpprises | true | true |
| surprises | surpprisess | false | false |


### Version 0.5.3 (Release Date: December 24, 2020)

=== "Maven"
Expand Down
1 change: 0 additions & 1 deletion docs/configs/janusgraph-cfg.md
Original file line number Diff line number Diff line change
Expand Up @@ -514,7 +514,6 @@ HBase storage options

| Name | Description | Datatype | Default Value | Mutability |
| ---- | ---- | ---- | ---- | ---- |
| storage.hbase.compat-class | The package and class name of the HBaseCompat implementation. HBaseCompat masks version-specific HBase API differences. When this option is unset, JanusGraph calls HBase's VersionInfo.getVersion() and loads the matching compat class at runtime. Setting this option forces JanusGraph to instead reflectively load and instantiate the specified class. | String | (no default value) | MASKABLE |
| storage.hbase.compression-algorithm | An HBase Compression.Algorithm enum string which will be applied to newly created column families. The compression algorithm must be installed and available on the HBase cluster. JanusGraph cannot install and configure new compression algorithms on the HBase cluster by itself. | String | GZ | MASKABLE |
| storage.hbase.region-count | The number of initial regions set when creating JanusGraph's HBase table | Integer | (no default value) | MASKABLE |
| storage.hbase.regions-per-server | The number of regions per regionserver to set when creating JanusGraph's HBase table | Integer | (no default value) | MASKABLE |
Expand Down
59 changes: 0 additions & 59 deletions janusgraph-all/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -253,64 +253,5 @@
</plugins>
</build>
</profile>
<profile>
<id>hbase1</id>
<dependencies>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-shaded-client</artifactId>
<version>${hbase1.version}</version>
<exclusions>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-shaded-server</artifactId>
<version>${hbase1.version}</version>
<exclusions>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</profile>
<profile>
<id>hbase2</id>
<activation>
<property>
<name>!hbase.profile</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-shaded-client</artifactId>
<version>${hbase2.version}</version>
<exclusions>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-shaded-mapreduce</artifactId>
<version>${hbase2.version}</version>
<exclusions>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</profile>
</profiles>
</project>
16 changes: 0 additions & 16 deletions janusgraph-dist/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -647,26 +647,10 @@
<failIfNoTests>false</failIfNoTests>
<excludedGroups>${test.excluded.groups}</excludedGroups>
<excludes>
<exclude>**/*HBase*IT.java</exclude>
<exclude>**/*CompatIT.java</exclude>
</excludes>
</configuration>
</execution>
<execution>
<id>hbase-integration-test</id>
<phase>integration-test</phase>
<goals>
<goal>integration-test</goal>
</goals>
<configuration>
<argLine>-Dtest.hbase.parentdir=${top.level.basedir}/janusgraph-hbase-parent/</argLine>
<reportNameSuffix>hbase</reportNameSuffix>
<failIfNoTests>false</failIfNoTests>
<includes>
<include>**/*HBase*IT.java</include>
</includes>
</configuration>
</execution>
<!-- Commented until the first 0.9/1.0 release
<execution>
<id>version-compat-integration-test</id>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# Copyright 2019 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.

host: 0.0.0.0
port: 8182
evaluationTimeout: 30000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
graph: conf/janusgraph-hbase-es.properties
}
scriptEngines: {
gremlin-groovy: {
plugins: { org.janusgraph.graphdb.tinkerpop.plugin.JanusGraphGremlinPlugin: {},
org.apache.tinkerpop.gremlin.server.jsr223.GremlinServerGremlinPlugin: {},
org.apache.tinkerpop.gremlin.tinkergraph.jsr223.TinkerGraphGremlinPlugin: {},
org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin: {classImports: [java.lang.Math], methodImports: [java.lang.Math#*]},
org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {files: [scripts/empty-sample.groovy]}}}}
# JanusGraph sets default serializers. You need to uncomment the following lines, if you require any custom serializers.
#
# serializers:
# - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphBinaryMessageSerializerV1, config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] }}
# - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphBinaryMessageSerializerV1, config: { serializeResultToString: true }}
# - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0, config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] }}
# - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0, config: { serializeResultToString: true }}
# - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV3d0, config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] }}
# # Older serialization versions for backwards compatibility:
# - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] }}
# - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoLiteMessageSerializerV1d0, config: {ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] }}
# - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, config: { serializeResultToString: true }}
# - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV2d0, config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] }}
# - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV1d0, config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistryV1d0] }}
# - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0, config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistryV1d0] }}
processors:
- { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
- { className: org.apache.tinkerpop.gremlin.server.op.traversal.TraversalOpProcessor, config: { cacheExpirationTime: 600000, cacheMaxSize: 1000 }}
metrics: {
consoleReporter: {enabled: false, interval: 180000},
csvReporter: {enabled: false, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
jmxReporter: {enabled: true},
slf4jReporter: {enabled: false, interval: 180000},
graphiteReporter: {enabled: false, interval: 180000}}
maxInitialLineLength: 4096
maxHeaderSize: 8192
maxChunkSize: 8192
maxContentLength: 65536
maxAccumulationBufferComponents: 1024
resultIterationBatchSize: 64
writeBufferLowWaterMark: 32768
writeBufferHighWaterMark: 65536

Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# 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.

host: 0.0.0.0
port: 8182
evaluationTimeout: 30000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
graph: conf/janusgraph-hbase.properties
}
scriptEngines: {
gremlin-groovy: {
plugins: { org.janusgraph.graphdb.tinkerpop.plugin.JanusGraphGremlinPlugin: {},
org.apache.tinkerpop.gremlin.server.jsr223.GremlinServerGremlinPlugin: {},
org.apache.tinkerpop.gremlin.tinkergraph.jsr223.TinkerGraphGremlinPlugin: {},
org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin: {classImports: [java.lang.Math], methodImports: [java.lang.Math#*]},
org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {files: [scripts/empty-sample.groovy]}}}}
# JanusGraph sets default serializers. You need to uncomment the following lines, if you require any custom serializers.
#
# serializers:
# - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphBinaryMessageSerializerV1, config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] }}
# - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphBinaryMessageSerializerV1, config: { serializeResultToString: true }}
# - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0, config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] }}
# - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0, config: { serializeResultToString: true }}
# - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV3d0, config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] }}
# # Older serialization versions for backwards compatibility:
# - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] }}
# - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoLiteMessageSerializerV1d0, config: {ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] }}
# - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, config: { serializeResultToString: true }}
# - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV2d0, config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] }}
# - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV1d0, config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistryV1d0] }}
# - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0, config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistryV1d0] }}
processors:
- { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
- { className: org.apache.tinkerpop.gremlin.server.op.traversal.TraversalOpProcessor, config: { cacheExpirationTime: 600000, cacheMaxSize: 1000 }}
metrics: {
consoleReporter: {enabled: false, interval: 180000},
csvReporter: {enabled: false, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
jmxReporter: {enabled: true},
slf4jReporter: {enabled: false, interval: 180000},
graphiteReporter: {enabled: false, interval: 180000}}
maxInitialLineLength: 4096
maxHeaderSize: 8192
maxChunkSize: 8192
maxContentLength: 65536
maxAccumulationBufferComponents: 1024
resultIterationBatchSize: 64
writeBufferLowWaterMark: 32768
writeBufferHighWaterMark: 65536
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,9 @@ public abstract class AbstractJanusGraphAssemblyIT extends JanusGraphAssemblyBas

protected abstract String getServerConfigPath();

protected abstract String getGraphName();
protected Duration getDefaultTimeout() {
return Duration.ofSeconds(30);
}

@Test
public void testSingleVertexInteractionAgainstGremlinSh() throws Exception {
Expand Down Expand Up @@ -136,7 +138,7 @@ protected void testJanusGraphServer(boolean full) throws Exception {
final boolean debug = false;
ImmutableMap<String, String> contextVars = ImmutableMap.of("janusgraphServerConfig", getServerConfigPath());
unzipAndRunExpect("janusgraph-server-sh.before.expect.vm", contextVars, full, debug);
assertTimeout(Duration.ofSeconds(30), () -> {
assertTimeout(getDefaultTimeout(), () -> {
while (!serverListening("localhost", 8182)) {
Thread.sleep(1000);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
public class BerkeleyESAssemblyIT extends AbstractJanusGraphAssemblyIT {

@Container
private static JanusGraphElasticsearchContainer es = new JanusGraphElasticsearchContainer(true);
private static final JanusGraphElasticsearchContainer _es = new JanusGraphElasticsearchContainer(true);

@Override
protected String getConfigPath() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
public class CqlAssemblyIT extends AbstractJanusGraphAssemblyIT {

@Container
private static JanusGraphCassandraContainer cql = new JanusGraphCassandraContainer(true);
private static final JanusGraphCassandraContainer _cql = new JanusGraphCassandraContainer(true);

@Override
protected String getConfigPath() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@
public class CqlESAssemblyIT extends AbstractJanusGraphAssemblyIT {

@Container
private static JanusGraphCassandraContainer _cql = new JanusGraphCassandraContainer(true);
private static final JanusGraphCassandraContainer _cql = new JanusGraphCassandraContainer(true);

@Container
private static JanusGraphElasticsearchContainer es = new JanusGraphElasticsearchContainer(true);
private static final JanusGraphElasticsearchContainer _es = new JanusGraphElasticsearchContainer(true);

@Override
protected String getConfigPath() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,11 @@ public class GraphOfTheGodsCompatIT extends JanusGraphAssemblyBaseIT {

private static final String BDB_ES = "bdb-es";

@Override
protected String getGraphName() {
return "graph-of-the-gods";
}

/**
* Download and open databases created by previous versions of JanusGraph.
* A basic check for cluster-restart forward-compatibility.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@

public class GremlinShellArgsIT extends JanusGraphAssemblyBaseIT {

@Override
protected String getGraphName() {
return "gremlin-shell";
}

@Test
public void testScriptFileArgument() throws Exception {
unzipAndRunExpect("gremlin-shell-args.expect.vm", false);
Expand Down
Loading

0 comments on commit a17a1ea

Please sign in to comment.