diff --git a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/API.java b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/API.java index 4c73f0711..4423af93d 100644 --- a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/API.java +++ b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/API.java @@ -33,8 +33,8 @@ import org.slf4j.Logger; import com.baidu.hugegraph.HugeException; import com.baidu.hugegraph.HugeGraph; -import com.baidu.hugegraph.api.schema.Checkable; import com.baidu.hugegraph.core.GraphManager; +import com.baidu.hugegraph.define.Checkable; import com.baidu.hugegraph.metrics.MetricsUtil; import com.baidu.hugegraph.server.RestServer; import com.baidu.hugegraph.type.HugeType; diff --git a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/filter/LoadDetectFilter.java b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/filter/LoadDetectFilter.java index 284d0a518..d52cf1237 100644 --- a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/filter/LoadDetectFilter.java +++ b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/filter/LoadDetectFilter.java @@ -33,7 +33,7 @@ import javax.ws.rs.ext.Provider; import com.baidu.hugegraph.config.HugeConfig; import com.baidu.hugegraph.config.ServerOptions; -import com.baidu.hugegraph.core.WorkLoad; +import com.baidu.hugegraph.define.WorkLoad; import com.baidu.hugegraph.util.Bytes; import com.baidu.hugegraph.util.E; import com.google.common.collect.ImmutableSet; diff --git a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/filter/LoadReleaseFilter.java b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/filter/LoadReleaseFilter.java index 71fae891c..c393b0107 100644 --- a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/filter/LoadReleaseFilter.java +++ b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/filter/LoadReleaseFilter.java @@ -26,7 +26,7 @@ import javax.ws.rs.container.ContainerResponseFilter; import javax.ws.rs.core.Context; import javax.ws.rs.ext.Provider; -import com.baidu.hugegraph.core.WorkLoad; +import com.baidu.hugegraph.define.WorkLoad; @Provider @Singleton diff --git a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/graph/BatchAPI.java b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/graph/BatchAPI.java index 465f59e1f..fc430a4a0 100644 --- a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/graph/BatchAPI.java +++ b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/graph/BatchAPI.java @@ -29,9 +29,10 @@ import org.slf4j.Logger; import com.baidu.hugegraph.HugeException; import com.baidu.hugegraph.HugeGraph; import com.baidu.hugegraph.api.API; -import com.baidu.hugegraph.api.schema.Checkable; import com.baidu.hugegraph.config.HugeConfig; import com.baidu.hugegraph.config.ServerOptions; +import com.baidu.hugegraph.define.Checkable; +import com.baidu.hugegraph.define.UpdateStrategy; import com.baidu.hugegraph.metrics.MetricsUtil; import com.baidu.hugegraph.server.RestServer; import com.baidu.hugegraph.structure.HugeElement; diff --git a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/graph/EdgeAPI.java b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/graph/EdgeAPI.java index 445d10ae3..81e57a4f2 100644 --- a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/graph/EdgeAPI.java +++ b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/graph/EdgeAPI.java @@ -58,6 +58,7 @@ import com.baidu.hugegraph.backend.tx.SchemaTransaction; import com.baidu.hugegraph.config.HugeConfig; import com.baidu.hugegraph.config.ServerOptions; import com.baidu.hugegraph.core.GraphManager; +import com.baidu.hugegraph.define.UpdateStrategy; import com.baidu.hugegraph.exception.NotFoundException; import com.baidu.hugegraph.schema.EdgeLabel; import com.baidu.hugegraph.schema.PropertyKey; diff --git a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/graph/VertexAPI.java b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/graph/VertexAPI.java index f699e9e4b..1cd1291f7 100644 --- a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/graph/VertexAPI.java +++ b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/graph/VertexAPI.java @@ -54,6 +54,7 @@ import com.baidu.hugegraph.backend.id.SplicingIdGenerator; import com.baidu.hugegraph.config.HugeConfig; import com.baidu.hugegraph.config.ServerOptions; import com.baidu.hugegraph.core.GraphManager; +import com.baidu.hugegraph.define.UpdateStrategy; import com.baidu.hugegraph.schema.PropertyKey; import com.baidu.hugegraph.schema.VertexLabel; import com.baidu.hugegraph.server.RestServer; diff --git a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/job/GremlinAPI.java b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/job/GremlinAPI.java index 71e836cb9..f9f7d5429 100644 --- a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/job/GremlinAPI.java +++ b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/job/GremlinAPI.java @@ -44,10 +44,10 @@ import com.baidu.hugegraph.HugeException; import com.baidu.hugegraph.HugeGraph; import com.baidu.hugegraph.api.API; import com.baidu.hugegraph.api.filter.StatusFilter.Status; -import com.baidu.hugegraph.api.schema.Checkable; import com.baidu.hugegraph.backend.id.Id; import com.baidu.hugegraph.backend.query.Query; import com.baidu.hugegraph.core.GraphManager; +import com.baidu.hugegraph.define.Checkable; import com.baidu.hugegraph.job.Job; import com.baidu.hugegraph.job.JobBuilder; import com.baidu.hugegraph.metrics.MetricsUtil; diff --git a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/schema/EdgeLabelAPI.java b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/schema/EdgeLabelAPI.java index 0acd26808..e4ded9358 100644 --- a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/schema/EdgeLabelAPI.java +++ b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/schema/EdgeLabelAPI.java @@ -41,6 +41,7 @@ import com.baidu.hugegraph.api.API; import com.baidu.hugegraph.api.filter.StatusFilter.Status; import com.baidu.hugegraph.backend.id.Id; import com.baidu.hugegraph.core.GraphManager; +import com.baidu.hugegraph.define.Checkable; import com.baidu.hugegraph.schema.EdgeLabel; import com.baidu.hugegraph.type.define.Frequency; import com.baidu.hugegraph.type.define.GraphMode; diff --git a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/schema/IndexLabelAPI.java b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/schema/IndexLabelAPI.java index b2acdbd24..5214cace8 100644 --- a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/schema/IndexLabelAPI.java +++ b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/schema/IndexLabelAPI.java @@ -40,6 +40,7 @@ import com.baidu.hugegraph.api.API; import com.baidu.hugegraph.api.filter.StatusFilter.Status; import com.baidu.hugegraph.backend.id.Id; import com.baidu.hugegraph.core.GraphManager; +import com.baidu.hugegraph.define.Checkable; import com.baidu.hugegraph.schema.IndexLabel; import com.baidu.hugegraph.type.HugeType; import com.baidu.hugegraph.type.define.GraphMode; diff --git a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/schema/PropertyKeyAPI.java b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/schema/PropertyKeyAPI.java index b774ef0b5..17e5f66e2 100644 --- a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/schema/PropertyKeyAPI.java +++ b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/schema/PropertyKeyAPI.java @@ -40,6 +40,7 @@ import com.baidu.hugegraph.HugeGraph; import com.baidu.hugegraph.api.API; import com.baidu.hugegraph.api.filter.StatusFilter.Status; import com.baidu.hugegraph.core.GraphManager; +import com.baidu.hugegraph.define.Checkable; import com.baidu.hugegraph.schema.PropertyKey; import com.baidu.hugegraph.type.define.Cardinality; import com.baidu.hugegraph.type.define.DataType; diff --git a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/schema/VertexLabelAPI.java b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/schema/VertexLabelAPI.java index 6f2870967..ce1ccf8de 100644 --- a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/schema/VertexLabelAPI.java +++ b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/schema/VertexLabelAPI.java @@ -41,6 +41,7 @@ import com.baidu.hugegraph.api.API; import com.baidu.hugegraph.api.filter.StatusFilter.Status; import com.baidu.hugegraph.backend.id.Id; import com.baidu.hugegraph.core.GraphManager; +import com.baidu.hugegraph.define.Checkable; import com.baidu.hugegraph.schema.VertexLabel; import com.baidu.hugegraph.type.define.GraphMode; import com.baidu.hugegraph.type.define.IdStrategy; diff --git a/hugegraph-api/src/main/java/com/baidu/hugegraph/config/ServerOptions.java b/hugegraph-api/src/main/java/com/baidu/hugegraph/config/ServerOptions.java index 1050c4c61..c852154ba 100644 --- a/hugegraph-api/src/main/java/com/baidu/hugegraph/config/ServerOptions.java +++ b/hugegraph-api/src/main/java/com/baidu/hugegraph/config/ServerOptions.java @@ -66,6 +66,16 @@ public class ServerOptions extends OptionHolder { 256 ); + + public static final ConfigOption REQUEST_TIMEOUT = + new ConfigOption<>( + "restserver.request_timeout", + "The time in seconds within which a request must complete, " + + "-1 means no timeout.", + rangeInt(-1, Integer.MAX_VALUE), + 30 + ); + public static final ConfigOption CONN_IDLE_TIMEOUT = new ConfigOption<>( "restserver.connection_idle_timeout", diff --git a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/schema/Checkable.java b/hugegraph-api/src/main/java/com/baidu/hugegraph/define/Checkable.java similarity index 79% rename from hugegraph-api/src/main/java/com/baidu/hugegraph/api/schema/Checkable.java rename to hugegraph-api/src/main/java/com/baidu/hugegraph/define/Checkable.java index c61d3a9fd..e4246955f 100644 --- a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/schema/Checkable.java +++ b/hugegraph-api/src/main/java/com/baidu/hugegraph/define/Checkable.java @@ -1,4 +1,4 @@ -package com.baidu.hugegraph.api.schema; +package com.baidu.hugegraph.define; public interface Checkable { diff --git a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/graph/UpdateStrategy.java b/hugegraph-api/src/main/java/com/baidu/hugegraph/define/UpdateStrategy.java similarity index 99% rename from hugegraph-api/src/main/java/com/baidu/hugegraph/api/graph/UpdateStrategy.java rename to hugegraph-api/src/main/java/com/baidu/hugegraph/define/UpdateStrategy.java index 22da3f468..f71739d36 100644 --- a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/graph/UpdateStrategy.java +++ b/hugegraph-api/src/main/java/com/baidu/hugegraph/define/UpdateStrategy.java @@ -17,7 +17,7 @@ * under the License. */ -package com.baidu.hugegraph.api.graph; +package com.baidu.hugegraph.define; import java.math.BigDecimal; import java.util.Collection; diff --git a/hugegraph-api/src/main/java/com/baidu/hugegraph/core/WorkLoad.java b/hugegraph-api/src/main/java/com/baidu/hugegraph/define/WorkLoad.java similarity index 97% rename from hugegraph-api/src/main/java/com/baidu/hugegraph/core/WorkLoad.java rename to hugegraph-api/src/main/java/com/baidu/hugegraph/define/WorkLoad.java index 563aaba22..d30d7a108 100644 --- a/hugegraph-api/src/main/java/com/baidu/hugegraph/core/WorkLoad.java +++ b/hugegraph-api/src/main/java/com/baidu/hugegraph/define/WorkLoad.java @@ -17,7 +17,7 @@ * under the License. */ -package com.baidu.hugegraph.core; +package com.baidu.hugegraph.define; import java.util.concurrent.atomic.AtomicInteger; diff --git a/hugegraph-api/src/main/java/com/baidu/hugegraph/server/ApplicationConfig.java b/hugegraph-api/src/main/java/com/baidu/hugegraph/server/ApplicationConfig.java index 4ea824641..4b1fb77fd 100644 --- a/hugegraph-api/src/main/java/com/baidu/hugegraph/server/ApplicationConfig.java +++ b/hugegraph-api/src/main/java/com/baidu/hugegraph/server/ApplicationConfig.java @@ -36,7 +36,7 @@ import org.glassfish.jersey.server.monitoring.RequestEventListener; import com.baidu.hugegraph.HugeException; import com.baidu.hugegraph.config.HugeConfig; import com.baidu.hugegraph.core.GraphManager; -import com.baidu.hugegraph.core.WorkLoad; +import com.baidu.hugegraph.define.WorkLoad; import com.baidu.hugegraph.util.E; import com.codahale.metrics.MetricRegistry; import com.codahale.metrics.jersey2.InstrumentedResourceMethodApplicationListener; diff --git a/hugegraph-api/src/main/java/com/baidu/hugegraph/server/RestServer.java b/hugegraph-api/src/main/java/com/baidu/hugegraph/server/RestServer.java index e14c3515b..e5f8b0bae 100644 --- a/hugegraph-api/src/main/java/com/baidu/hugegraph/server/RestServer.java +++ b/hugegraph-api/src/main/java/com/baidu/hugegraph/server/RestServer.java @@ -70,17 +70,24 @@ public class RestServer { E.checkState(listeners.size() > 0, "Http Server should have some listeners, but now is none"); NetworkListener listener = listeners.iterator().next(); + // Option max_worker_threads int maxWorkerThreads = this.conf.get(ServerOptions.MAX_WORKER_THREADS); listener.getTransport() .getWorkerThreadPoolConfig() .setCorePoolSize(maxWorkerThreads) .setMaxPoolSize(maxWorkerThreads); + // Option keep_alive int idleTimeout = this.conf.get(ServerOptions.CONN_IDLE_TIMEOUT); int maxRequests = this.conf.get(ServerOptions.CONN_MAX_REQUESTS); listener.getKeepAlive().setIdleTimeoutInSeconds(idleTimeout); listener.getKeepAlive().setMaxRequestsCount(maxRequests); + + // Option transaction timeout + int transactionTimeout = this.conf.get(ServerOptions.REQUEST_TIMEOUT); + listener.setTransactionTimeout(transactionTimeout); + return server; }