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 3f477f2409..3f9e3c5e62 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 @@ -48,6 +48,9 @@ public class API { private static final Logger LOG = Log.logger(RestServer.class); + // Empirical value of scan limit, with which results can be returned in 3s + protected static final long SCAN_PAGE_LIMIT = 100_000L; + public static final String CHARSET = "UTF-8"; public static final String APPLICATION_JSON = MediaType.APPLICATION_JSON; diff --git a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/traversers/EdgesAPI.java b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/traversers/EdgesAPI.java index 1e7c01898c..fde5aded58 100644 --- a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/traversers/EdgesAPI.java +++ b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/traversers/EdgesAPI.java @@ -38,7 +38,6 @@ import com.baidu.hugegraph.api.filter.CompressInterceptor.Compress; import com.baidu.hugegraph.backend.id.Id; import com.baidu.hugegraph.backend.query.ConditionQuery; -import com.baidu.hugegraph.backend.query.Query; import com.baidu.hugegraph.backend.store.Shard; import com.baidu.hugegraph.core.GraphManager; import com.baidu.hugegraph.server.RestServer; @@ -111,10 +110,12 @@ public String scan(@Context GraphManager manager, ConditionQuery query = new ConditionQuery(HugeType.EDGE_OUT); query.scan(start, end); - query.limit(Query.DEFAULT_CAPACITY); query.page(page); + if (query.paging()) { + query.limit(SCAN_PAGE_LIMIT); + } Iterator edges = g.edges(query); - return manager.serializer(g).writeEdges(edges, true); + return manager.serializer(g).writeEdges(edges, query.paging()); } } diff --git a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/traversers/VerticesAPI.java b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/traversers/VerticesAPI.java index 96952898d2..d419a2b0e1 100644 --- a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/traversers/VerticesAPI.java +++ b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/traversers/VerticesAPI.java @@ -39,7 +39,6 @@ import com.baidu.hugegraph.api.graph.VertexAPI; import com.baidu.hugegraph.backend.id.Id; import com.baidu.hugegraph.backend.query.ConditionQuery; -import com.baidu.hugegraph.backend.query.Query; import com.baidu.hugegraph.backend.store.Shard; import com.baidu.hugegraph.core.GraphManager; import com.baidu.hugegraph.server.RestServer; @@ -111,10 +110,12 @@ public String scan(@Context GraphManager manager, ConditionQuery query = new ConditionQuery(HugeType.VERTEX); query.scan(start, end); - query.limit(Query.DEFAULT_CAPACITY); query.page(page); + if (query.paging()) { + query.limit(SCAN_PAGE_LIMIT); + } Iterator vertices = g.vertices(query); - return manager.serializer(g).writeVertices(vertices, true); + return manager.serializer(g).writeVertices(vertices, query.paging()); } }