You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@s2graph.apache.org by da...@apache.org on 2016/03/17 09:07:12 UTC
incubator-s2graph git commit: [S2GRAPH-55]: Add param to enable epoll
event loop in experimental netty http server
Repository: incubator-s2graph
Updated Branches:
refs/heads/master c6b34cdad -> e9bb727f1
[S2GRAPH-55]: Add param to enable epoll event loop in experimental netty http server
Add netty transport option.
Netty experimental server can run with native transport
ex) sbt 'project s2rest_netty' run -Dconfig.file=../real.conf -Dnetty.transport=native
JIRA:
[S2GRAPH-55] https://issues.apache.org/jira/browse/S2GRAPH-55
Pull Request:
Closes #38
Project: http://git-wip-us.apache.org/repos/asf/incubator-s2graph/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-s2graph/commit/e9bb727f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-s2graph/tree/e9bb727f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-s2graph/diff/e9bb727f
Branch: refs/heads/master
Commit: e9bb727f1909d9d326a31a326c0949d600b5de81
Parents: c6b34cd
Author: daewon <da...@apache.org>
Authored: Thu Mar 17 17:04:23 2016 +0900
Committer: daewon <da...@apache.org>
Committed: Thu Mar 17 17:04:23 2016 +0900
----------------------------------------------------------------------
CHANGES | 2 ++
.../org/apache/s2graph/rest/netty/Server.scala | 16 ++++++++++++----
2 files changed, 14 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-s2graph/blob/e9bb727f/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index eeaa6e1..e1109e2 100644
--- a/CHANGES
+++ b/CHANGES
@@ -61,6 +61,8 @@ Release 0.12.1 - unreleased
S2GRAPH-53: Refactor Storage to decide which serializer/deserializer for IndexEdge/SnapshotEdge/Vertex
(Committed by DOYUNG YOON).
+ S2GRAPH-55: Add param to enable epoll event loop in experimental netty http server (Committed by daewon).
+
BUG FIXES
S2GRAPH-18: Query Option "interval" is Broken.
http://git-wip-us.apache.org/repos/asf/incubator-s2graph/blob/e9bb727f/s2rest_netty/src/main/scala/org/apache/s2graph/rest/netty/Server.scala
----------------------------------------------------------------------
diff --git a/s2rest_netty/src/main/scala/org/apache/s2graph/rest/netty/Server.scala b/s2rest_netty/src/main/scala/org/apache/s2graph/rest/netty/Server.scala
index 5eac0ba..e980fc5 100644
--- a/s2rest_netty/src/main/scala/org/apache/s2graph/rest/netty/Server.scala
+++ b/s2rest_netty/src/main/scala/org/apache/s2graph/rest/netty/Server.scala
@@ -25,6 +25,7 @@ import com.typesafe.config.ConfigFactory
import io.netty.bootstrap.ServerBootstrap
import io.netty.buffer.{ByteBuf, Unpooled}
import io.netty.channel._
+import io.netty.channel.epoll.{EpollServerSocketChannel, EpollEventLoopGroup}
import io.netty.channel.nio.NioEventLoopGroup
import io.netty.channel.socket.SocketChannel
import io.netty.channel.socket.nio.NioServerSocketChannel
@@ -177,6 +178,7 @@ object NettyServer extends App {
val config = ConfigFactory.load()
val port = Try(config.getInt("http.port")).recover { case _ => 9000 }.get
+ val transport = Try(config.getString("netty.transport")).recover { case _ => "jdk" }.get
// init s2graph with config
val s2graph = new Graph(config)(ec)
@@ -186,16 +188,21 @@ object NettyServer extends App {
var isHealthy = config.getBooleanWithFallback("app.health.on", true)
logger.info(s"starts with num of thread: $numOfThread, ${threadPool.getClass.getSimpleName}")
+ logger.info(s"transport: $transport")
// Configure the server.
- val bossGroup: EventLoopGroup = new NioEventLoopGroup(1)
- val workerGroup: EventLoopGroup = new NioEventLoopGroup()
+ val (bossGroup, workerGroup, channelClass) = transport match {
+ case "native" =>
+ (new EpollEventLoopGroup(1), new EpollEventLoopGroup(), classOf[EpollServerSocketChannel])
+ case _ =>
+ (new NioEventLoopGroup(1), new NioEventLoopGroup(), classOf[NioServerSocketChannel])
+ }
try {
val b: ServerBootstrap = new ServerBootstrap()
- b.option(ChannelOption.SO_BACKLOG, Int.box(2048))
+ .option(ChannelOption.SO_BACKLOG, Int.box(2048))
- b.group(bossGroup, workerGroup).channel(classOf[NioServerSocketChannel])
+ b.group(bossGroup, workerGroup).channel(channelClass)
.handler(new LoggingHandler(LogLevel.INFO))
.childHandler(new ChannelInitializer[SocketChannel] {
override def initChannel(ch: SocketChannel) {
@@ -206,6 +213,7 @@ object NettyServer extends App {
}
})
+ // for check server is started
logger.info(s"Listening for HTTP on /0.0.0.0:$port")
val ch: Channel = b.bind(port).sync().channel()
ch.closeFuture().sync()