Repository: incubator-s2graph Updated Branches: refs/heads/master f2311f25c -> 6cfbf1d2b
[S2GRAPH-24] Add counter config for readonly graph If we set s2graph.read-only.url on application.conf for s2counter_loader. We can read data from the read-only server. JIRA: [S2GRAPH-24] https://issues.apache.org/jira/browse/S2GRAPH-24 Pull Request: Closes #1 Project: http://git-wip-us.apache.org/repos/asf/incubator-s2graph/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-s2graph/commit/6cfbf1d2 Tree: http://git-wip-us.apache.org/repos/asf/incubator-s2graph/tree/6cfbf1d2 Diff: http://git-wip-us.apache.org/repos/asf/incubator-s2graph/diff/6cfbf1d2 Branch: refs/heads/master Commit: 6cfbf1d2b82d8294b66153512f0843f25b2879a7 Parents: f2311f2 Author: Jaesang Kim <[email protected]> Authored: Tue Jan 12 16:09:28 2016 +0900 Committer: Jaesang Kim <[email protected]> Committed: Wed Jan 13 18:57:11 2016 +0900 ---------------------------------------------------------------------- CHANGES | 2 ++ s2counter_core/src/main/scala/s2/config/S2CounterConfig.scala | 5 +++-- .../src/main/scala/s2/counter/core/v2/ExactStorageGraph.scala | 5 +++-- .../src/main/scala/s2/counter/core/v2/RankingStorageGraph.scala | 5 +++-- s2counter_loader/src/main/scala/s2/config/StreamingConfig.scala | 1 + s2counter_loader/src/test/resources/application.conf | 1 + 6 files changed, 13 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-s2graph/blob/6cfbf1d2/CHANGES ---------------------------------------------------------------------- diff --git a/CHANGES b/CHANGES index 3575cd8..4ca49c6 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,8 @@ Release 0.12.1 - unreleased IMPROVEMENT + S2GRAPH-24: Add counter config for readonly graph (Committed by Jaesang Kim). + BUG FIXES TASKS http://git-wip-us.apache.org/repos/asf/incubator-s2graph/blob/6cfbf1d2/s2counter_core/src/main/scala/s2/config/S2CounterConfig.scala ---------------------------------------------------------------------- diff --git a/s2counter_core/src/main/scala/s2/config/S2CounterConfig.scala b/s2counter_core/src/main/scala/s2/config/S2CounterConfig.scala index d0db73c..fcd0e6a 100644 --- a/s2counter_core/src/main/scala/s2/config/S2CounterConfig.scala +++ b/s2counter_core/src/main/scala/s2/config/S2CounterConfig.scala @@ -28,7 +28,7 @@ class S2CounterConfig(config: Config) extends ConfigFunctions(config) { lazy val DB_DEFAULT_USER = getOrElse("db.default.user", "graph") lazy val DB_DEFAULT_PASSWORD = getOrElse("db.default.password", "graph") - // REDIS + // Redis lazy val REDIS_INSTANCES = (for { s <- config.getStringList("redis.instances") } yield { @@ -36,8 +36,9 @@ class S2CounterConfig(config: Config) extends ConfigFunctions(config) { (sp(0), if (sp.length > 1) sp(1).toInt else 6379) }).toList - // graph + // Graph lazy val GRAPH_URL = getOrElse("s2graph.url", "http://localhost:9000") + lazy val GRAPH_READONLY_URL = getOrElse("s2graph.read-only.url", GRAPH_URL) // Cache lazy val CACHE_TTL_SECONDS = getOrElse("cache.ttl.seconds", 600) http://git-wip-us.apache.org/repos/asf/incubator-s2graph/blob/6cfbf1d2/s2counter_core/src/main/scala/s2/counter/core/v2/ExactStorageGraph.scala ---------------------------------------------------------------------- diff --git a/s2counter_core/src/main/scala/s2/counter/core/v2/ExactStorageGraph.scala b/s2counter_core/src/main/scala/s2/counter/core/v2/ExactStorageGraph.scala index e7b674a..2b225c8 100644 --- a/s2counter_core/src/main/scala/s2/counter/core/v2/ExactStorageGraph.scala +++ b/s2counter_core/src/main/scala/s2/counter/core/v2/ExactStorageGraph.scala @@ -35,6 +35,7 @@ case class ExactStorageGraph(config: Config) extends ExactStorage { private val labelPostfix = "_counts" val s2graphUrl = s2config.GRAPH_URL + val s2graphReadOnlyUrl = s2config.GRAPH_READONLY_URL val graphOp = new GraphOperation(config) import ExactStorageGraph._ @@ -169,7 +170,7 @@ case class ExactStorageGraph(config: Config) extends ExactStorage { val reqJs = Json.parse(reqJsStr) // log.warn(s"query: ${reqJs.toString()}") - wsClient.url(s"$s2graphUrl/graphs/getEdges").post(reqJs).map { resp => + wsClient.url(s"$s2graphReadOnlyUrl/graphs/getEdges").post(reqJs).map { resp => resp.status match { case HttpStatus.SC_OK => val respJs = resp.json @@ -229,7 +230,7 @@ case class ExactStorageGraph(config: Config) extends ExactStorage { val query = Json.obj("srcVertices" -> Json.arr(src), "steps" -> Json.arr(step)) // println(s"query: ${query.toString()}") - wsClient.url(s"$s2graphUrl/graphs/getEdges").post(query).map { resp => + wsClient.url(s"$s2graphReadOnlyUrl/graphs/getEdges").post(query).map { resp => resp.status match { case HttpStatus.SC_OK => val respJs = resp.json http://git-wip-us.apache.org/repos/asf/incubator-s2graph/blob/6cfbf1d2/s2counter_core/src/main/scala/s2/counter/core/v2/RankingStorageGraph.scala ---------------------------------------------------------------------- diff --git a/s2counter_core/src/main/scala/s2/counter/core/v2/RankingStorageGraph.scala b/s2counter_core/src/main/scala/s2/counter/core/v2/RankingStorageGraph.scala index 4bed8ab..18d7eda 100644 --- a/s2counter_core/src/main/scala/s2/counter/core/v2/RankingStorageGraph.scala +++ b/s2counter_core/src/main/scala/s2/counter/core/v2/RankingStorageGraph.scala @@ -38,6 +38,7 @@ class RankingStorageGraph(config: Config) extends RankingStorage { private val labelPostfix = "_topK" val s2graphUrl = s2config.GRAPH_URL + val s2graphReadOnlyUrl = s2config.GRAPH_READONLY_URL val prepareCache = new CollectionCache[Option[Boolean]](CollectionCacheConfig(10000, 600)) val graphOp = new GraphOperation(config) @@ -240,7 +241,7 @@ class RankingStorageGraph(config: Config) extends RankingStorage { log.debug(strJs) val payload = Json.parse(strJs) - wsClient.url(s"$s2graphUrl/graphs/getEdges").post(payload).map { resp => + wsClient.url(s"$s2graphReadOnlyUrl/graphs/getEdges").post(payload).map { resp => resp.status match { case HttpStatus.SC_OK => (resp.json \ "results").asOpt[List[JsValue]].getOrElse(Nil) @@ -272,7 +273,7 @@ class RankingStorageGraph(config: Config) extends RankingStorage { ) ) - val future = wsClient.url(s"$s2graphUrl/graphs/checkEdges").post(checkReqJs).map { resp => + val future = wsClient.url(s"$s2graphReadOnlyUrl/graphs/checkEdges").post(checkReqJs).map { resp => resp.status match { case HttpStatus.SC_OK => val checkRespJs = resp.json http://git-wip-us.apache.org/repos/asf/incubator-s2graph/blob/6cfbf1d2/s2counter_loader/src/main/scala/s2/config/StreamingConfig.scala ---------------------------------------------------------------------- diff --git a/s2counter_loader/src/main/scala/s2/config/StreamingConfig.scala b/s2counter_loader/src/main/scala/s2/config/StreamingConfig.scala index 0880bdd..ba5e863 100644 --- a/s2counter_loader/src/main/scala/s2/config/StreamingConfig.scala +++ b/s2counter_loader/src/main/scala/s2/config/StreamingConfig.scala @@ -20,4 +20,5 @@ object StreamingConfig extends ConfigFunctions(S2ConfigFactory.config) { // graph url val GRAPH_URL = getOrElse("s2graph.url", "") + val GRAPH_READONLY_URL = getOrElse("s2graph.read-only.url", GRAPH_URL) } http://git-wip-us.apache.org/repos/asf/incubator-s2graph/blob/6cfbf1d2/s2counter_loader/src/test/resources/application.conf ---------------------------------------------------------------------- diff --git a/s2counter_loader/src/test/resources/application.conf b/s2counter_loader/src/test/resources/application.conf index 369a6fa..b3c57af 100644 --- a/s2counter_loader/src/test/resources/application.conf +++ b/s2counter_loader/src/test/resources/application.conf @@ -75,3 +75,4 @@ profile.prefetch.size=100 # s2graph s2graph.url = "http://"${host}":9000" +s2graph.read-only.url = ${s2graph.url}
