Browse Source

Merge pull request #651 from weltermann17/master

PLAIN: Improvements for servlet, json, db. Will hopefully run on EC2 now. Fixed validation error for Fortunes.
Mike Smith 11 years ago
parent
commit
66b871880c

+ 3 - 26
plain/benchmark_config

@@ -9,7 +9,7 @@
       "query_url": "/db?queries=",
       "update_url": "/update?queries=",
       "fortune_url": "/fortunes",
-      "port": 9080,
+      "port": 8080,
       "approach": "Realistic",
       "classification": "Fullstack",
       "database": "MySQL",
@@ -32,7 +32,7 @@
       "query_url": "/web-apps/servlet/db?queries=",
       "update_url": "/web-apps/servlet/update?queries=",
       "fortune_url": "/web-apps/servlet/fortunes",
-      "port": 9080,
+      "port": 8080,
       "approach": "Realistic",
       "classification": "Fullstack",
       "database": "MySQL",
@@ -55,7 +55,7 @@
       "query_url": "/db?queries=",
       "update_url": "/update?queries=",
       "fortune_url": "/fortunes",
-      "port": 9080,
+      "port": 8080,
       "approach": "Realistic",
       "classification": "Fullstack",
       "database": "MySQL",
@@ -69,29 +69,6 @@
       "display_name": "plain-windows",
       "notes": "",
       "versus": ""
-    },
-    "win-servlet": {
-      "setup_file": "setup",
-      "json_url": "/web-apps/servlet/json",
-      "plaintext_url": "/web-apps/servlet/plaintext",
-      "db_url": "/web-apps/servlet/db",
-      "query_url": "/web-apps/servlet/db?queries=",
-      "update_url": "/web-apps/servlet/update?queries=",
-      "fortune_url": "/web-apps/servlet/fortunes",
-      "port": 9080,
-      "approach": "Realistic",
-      "classification": "Fullstack",
-      "database": "MySQL",
-      "framework": "plain",
-      "language": "Scala",
-      "orm": "Full",
-      "platform": "Plain",
-      "webserver": "None",
-      "os": "Windows",
-      "database_os": "Linux",
-      "display_name": "plain-servlet-windows",
-      "notes": "",
-      "versus": ""
     }
   }]
 }

+ 1 - 3
plain/build.sbt

@@ -31,7 +31,6 @@ libraryDependencies ++= Seq(
   "com.typesafe" % "config" % "1.0.2",
   "ch.qos.logback" % "logback-classic" % "1.0.13",
   "org.codehaus.janino" % "janino" % "2.6.1",
-  "com.lmax" % "disruptor" % "3.2.0",
   "com.typesafe.akka" %% "akka-actor" % "2.2.3",
   "com.typesafe.akka" %% "akka-slf4j" % "2.2.3",
   "org.apache.commons" % "commons-lang3" % "3.1",
@@ -41,12 +40,11 @@ libraryDependencies ++= Seq(
   "commons-codec" % "commons-codec" % "1.8",
   "javax.servlet" % "javax.servlet-api" % "3.1.0",
   "org.glassfish.web" % "javax.servlet.jsp" % "2.3.1",
-  "com.googlecode.concurrentlinkedhashmap" % "concurrentlinkedhashmap-lru" % "1.3.2",
+  "com.googlecode.concurrentlinkedhashmap" % "concurrentlinkedhashmap-lru" % "1.4",
   "net.jpountz.lz4" % "lz4" % "1.2.0",
   "net.lingala.zip4j" % "zip4j" % "1.3.1", 
   "com.fasterxml.jackson.core" % "jackson-databind" % "2.3.0",
   "com.sun.jersey" % "jersey-json" % "1.17.1",
-  "org.jvnet.mimepull" % "mimepull" % "1.9.3",
   "mysql" % "mysql-connector-java" % "5.1.27"
 )
 

BIN
plain/lib/plain-library_2.10-1.0.1-SNAPSHOT.jar


+ 1 - 1
plain/setup.py

@@ -11,7 +11,7 @@ def start(args, logfile, errfile):
   else:
     subprocess.check_call("./sbt assembly && rm -rf target/scala-2.10/cache", shell=True, cwd="plain", stderr=errfile, stdout=logfile)
 
-  subprocess.Popen("java -server -da -dsa -Xrs -Xmx6g -Xmn4g -Xss8m -Xnoclassgc -XX:MaxPermSize=1g -XX:ReservedCodeCacheSize=384m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -jar target/scala-2.10/plain-benchmark-assembly-1.0.1.jar", cwd="plain", shell=True, stderr=errfile, stdout=logfile)
+  subprocess.Popen("java -jar target/scala-2.10/plain-benchmark-assembly-1.0.1.jar", cwd="plain", shell=True, stderr=errfile, stdout=logfile)
   time.sleep(10)
   return 0
 

+ 3 - 3
plain/src/main/resources/application.conf

@@ -19,7 +19,7 @@ plain {
 }
 
 benchmark-server {
-	port-range = [ 9080 ]
+	port-range = [ 8080 ]
 	dispatcher = benchmark-dispatcher
 }
 
@@ -29,7 +29,7 @@ benchmark-dispatcher.routes = [
 	{ uri = db, resource-class-name = com.ibm.techempower.Db }
 	{ uri = update, resource-class-name = com.ibm.techempower.Update }
 	{ uri = fortunes, resource-class-name = com.ibm.techempower.Fortunes }
-	{ uri = "web-apps*", resource-class-name = com.ibm.plain.rest.resource.ServletResource }
+	{ uri = "web-apps*", resource-class-name = com.ibm.plain.servlet.ServletResource }
 ]
 
 benchmark-mysql {
@@ -37,7 +37,7 @@ benchmark-mysql {
 	jndi-lookup-name = "jdbc/hello_world"
 	driver = mysql-5-6-12
 	datasource-settings {	
-		setUrl = "jdbc:mysql://127.0.0.1:3306/hello_world?jdbcCompliantTruncation=false&elideSetAutoCommits=false&dontTrackOpenResources=true&enableQueryTimeouts=false&useLocalSessionState=false&cachePrepStmts=true&cacheCallableStmts=true&alwaysSendSetIsolation=false&prepStmtCacheSize=1024&cacheServerConfiguration=true&prepStmtCacheSqlLimit=2048&zeroDateTimeBehavior=convertToNull&traceProtocol=false&useUnbufferedInput=false&useReadAheadInput=true&maintainTimeStats=false&useServerPrepStmts&cacheRSMetadata=true&poolPreparedStatements=true"
+		setUrl = "jdbc:mysql://127.0.0.1:3306/hello_world?jdbcCompliantTruncation=false&elideSetAutoCommits=true&useLocalSessionState=true&cachePrepStmts=true&cacheCallableStmts=true&alwaysSendSetIsolation=false&prepStmtCacheSize=4096&cacheServerConfiguration=true&prepStmtCacheSqlLimit=2048&zeroDateTimeBehavior=convertToNull&traceProtocol=false&useUnbufferedInput=false&useReadAheadInput=false&maintainTimeStats=false&useServerPrepStmts&cacheRSMetadata=true"
 		setUser = benchmarkdbuser
 		setPassword = benchmarkdbpass
 	}	

+ 8 - 2
plain/src/main/scala/com/ibm/techempower/PlainText.scala

@@ -11,12 +11,18 @@ final class PlainText
 
   import PlainText._
 
-  Get { hello }
+  Get { hello.duplicate }
 
 }
 
 object PlainText {
 
-  private final val hello = "Hello, World!".getBytes(`UTF-8`)
+  private final val hello = {
+    val a = "Hello, World!".getBytes(`UTF-8`)
+    val buf = ByteBuffer.allocateDirect(a.length)
+    buf.put(a)
+    buf.flip
+    buf
+  }
 
 }

BIN
plain/web-apps/servlet.war