Browse Source

update 1.9.2.8 (#3727)

* Delete redkale-postgres.dockerfile

* Add files via upload

* Update benchmark_config.json
Redkale 7 years ago
parent
commit
09ec9edb10

+ 19 - 3
frameworks/Java/redkale/benchmark_config.json

@@ -2,9 +2,25 @@
   "framework": "redkale",
   "framework": "redkale",
   "tests": [{
   "tests": [{
     "default": {
     "default": {
-      "setup_file": "setup",
       "json_url": "/json",
       "json_url": "/json",
       "plaintext_url": "/plaintext",
       "plaintext_url": "/plaintext",
+      "port": 8080,
+      "approach": "Realistic",
+      "classification": "Fullstack",
+      "database": "None",
+      "framework": "None",
+      "language": "Java",
+      "flavor": "None",
+      "orm": "Raw",
+      "platform": "None",
+      "webserver": "None",
+      "os": "Linux",
+      "database_os": "Linux",
+      "display_name": "redkale",
+      "notes": "",
+      "versus": ""
+    },
+	"postgres": {
       "db_url": "/db",
       "db_url": "/db",
       "query_url": "/queries?queries=",
       "query_url": "/queries?queries=",
       "fortune_url": "/fortunes",
       "fortune_url": "/fortunes",
@@ -17,8 +33,8 @@
       "language": "Java",
       "language": "Java",
       "flavor": "None",
       "flavor": "None",
       "orm": "Raw",
       "orm": "Raw",
-      "platform": "Redkale",
-      "webserver": "Redkale",
+      "platform": "None",
+      "webserver": "None",
       "os": "Linux",
       "os": "Linux",
       "database_os": "Linux",
       "database_os": "Linux",
       "display_name": "redkale",
       "display_name": "redkale",

+ 5 - 5
frameworks/Java/redkale/conf/application.xml

@@ -5,17 +5,17 @@
     <!--  see: http://redkale.org/redkale.html#redkale_confxml  -->
     <!--  see: http://redkale.org/redkale.html#redkale_confxml  -->
     
     
     <resources>
     <resources>
-	<properties>
+		<properties>
             <property name="system.property.http.response.header.server" value="redkale"/>
             <property name="system.property.http.response.header.server" value="redkale"/>
         </properties>
         </properties>
 	</resources> 
 	</resources> 
         
         
-    <server protocol="HTTP" host="0.0.0.0" port="8080" threads="32" aliveTimeoutSeconds="300">      
+    <server protocol="HTTP" host="0.0.0.0" port="8080" threads="128" aliveTimeoutSeconds="300">      
                 
                 
         <response>
         <response>
-		<contenttype plain="text/plain" json="application/json"/>  
-		<date period="1000"/>
-	</response>
+			<contenttype plain="text/plain" json="application/json"/>  
+			<date period="1000"/>
+		</response>
 
 
         <services autoload="true"/>
         <services autoload="true"/>
         
         

+ 2 - 2
frameworks/Java/redkale/conf/persistence.xml

@@ -6,8 +6,8 @@
         <shared-cache-mode>ALL</shared-cache-mode>
         <shared-cache-mode>ALL</shared-cache-mode>
         <properties>
         <properties>
             <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://tfb-database:5432/hello_world"/>
             <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://tfb-database:5432/hello_world"/>
-            <property name="javax.persistence.connections.limit" value="128"/>
-            <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver"/>
+            <property name="javax.persistence.connections.limit" value="512"/>
+            <property name="javax.persistence.datasource" value="org.redkalex.source.pgsql.PgSQLDataSource"/>
             <property name="javax.persistence.jdbc.user" value="benchmarkdbuser"/>
             <property name="javax.persistence.jdbc.user" value="benchmarkdbuser"/>
             <property name="javax.persistence.jdbc.password" value="benchmarkdbpass"/>
             <property name="javax.persistence.jdbc.password" value="benchmarkdbpass"/>
         </properties>
         </properties>

+ 6 - 4
frameworks/Java/redkale/pom.xml

@@ -15,15 +15,17 @@
 	</properties>
 	</properties>
 
 
 	<dependencies>
 	<dependencies>
+  
 		<dependency>
 		<dependency>
 			<groupId>org.redkale</groupId>
 			<groupId>org.redkale</groupId>
 			<artifactId>redkale</artifactId>
 			<artifactId>redkale</artifactId>
-			<version>1.9.2.7</version>
+			<version>1.9.2.8</version>
 		</dependency>
 		</dependency>
+
 		<dependency>
 		<dependency>
-			<groupId>org.postgresql</groupId>
-			<artifactId>postgresql</artifactId>
-			<version>42.2.2</version>
+			<groupId>org.redkalex</groupId>
+			<artifactId>redkale-plugins</artifactId>
+			<version>1.9.2.5</version>
 		</dependency>
 		</dependency>
 		<dependency>
 		<dependency>
 			<groupId>com.fizzed</groupId>
 			<groupId>com.fizzed</groupId>

+ 12 - 0
frameworks/Java/redkale/redkale-postgres.dockerfile

@@ -0,0 +1,12 @@
+FROM maven:3.5.3-jdk-10-slim as maven
+WORKDIR /redkale
+COPY src src
+COPY conf conf
+COPY pom.xml pom.xml
+RUN mvn package -q
+
+FROM openjdk:10-jre-slim
+WORKDIR /redkale
+COPY conf conf
+COPY --from=maven /redkale/target/redkale-benchmark-0.0.1.jar redkale-benchmark.jar
+CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-DAPP_HOME=./", "-jar", "redkale-benchmark.jar"]

+ 26 - 17
frameworks/Java/redkale/src/main/java/org/redkalex/benchmark/Service.java

@@ -7,6 +7,7 @@ package org.redkalex.benchmark;
 
 
 import java.nio.ByteBuffer;
 import java.nio.ByteBuffer;
 import java.util.*;
 import java.util.*;
+import java.util.concurrent.CompletableFuture;
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import org.redkale.net.http.*;
 import org.redkale.net.http.*;
 import org.redkale.service.AbstractService;
 import org.redkale.service.AbstractService;
@@ -19,7 +20,7 @@ import org.redkale.source.DataSource;
 @RestService(name = " ", repair = false)
 @RestService(name = " ", repair = false)
 public class Service extends AbstractService {
 public class Service extends AbstractService {
 
 
-    private static final ByteBuffer helloBuffer = ((ByteBuffer)ByteBuffer.allocateDirect("Hello, world!".length()).put("Hello, world!".getBytes()).flip()).asReadOnlyBuffer();
+    private static final ByteBuffer helloBuffer = ((ByteBuffer) ByteBuffer.allocateDirect("Hello, world!".length()).put("Hello, world!".getBytes()).flip()).asReadOnlyBuffer();
 
 
     private final Random random = new Random();
     private final Random random = new Random();
 
 
@@ -37,39 +38,47 @@ public class Service extends AbstractService {
     }
     }
 
 
     @RestMapping(name = "db")
     @RestMapping(name = "db")
-    public World findWorld() {
-        return source.find(World.class, randomId());
+    public CompletableFuture<World> findWorld() {
+        return source.findAsync(World.class, randomId());
     }
     }
 
 
     @RestMapping(name = "queries")
     @RestMapping(name = "queries")
-    public World[] queryWorld(@RestParam(name = "queries") int count) {
+    public CompletableFuture<World[]> queryWorld(@RestParam(name = "queries") int count) {
         count = Math.min(500, Math.max(1, count));
         count = Math.min(500, Math.max(1, count));
         final World[] rs = new World[count];
         final World[] rs = new World[count];
+        final CompletableFuture<World>[] futures = new CompletableFuture[count];
         for (int i = 0; i < count; i++) {
         for (int i = 0; i < count; i++) {
-            rs[i] = source.find(World.class, randomId());
+            final int index = i;
+            futures[index] = source.findAsync(World.class, randomId()).whenComplete((w, t) -> rs[index] = w);
         }
         }
-        return rs;
+        return CompletableFuture.allOf(futures).thenApply((r) -> rs);
     }
     }
 
 
     @RestMapping(name = "updates")
     @RestMapping(name = "updates")
-    public World[] updateWorld(@RestParam(name = "queries") int count) {
+    public CompletableFuture<World[]> updateWorld(@RestParam(name = "queries") int count) {
         count = Math.min(500, Math.max(1, count));
         count = Math.min(500, Math.max(1, count));
         final World[] rs = new World[count];
         final World[] rs = new World[count];
+        final CompletableFuture<World>[] futures = new CompletableFuture[count];
         for (int i = 0; i < count; i++) {
         for (int i = 0; i < count; i++) {
-            rs[i] = source.find(World.class, randomId());
-            rs[i].setRandomNumber(randomId());
+            final int index = i;
+            futures[index] = source.findAsync(World.class, randomId()).whenComplete((w, t) -> {
+                rs[index] = w;
+                rs[index].setRandomNumber(randomId());
+            });
         }
         }
-        source.update(rs);
-        return rs;
+        return CompletableFuture.allOf(futures).thenCompose((r) -> { 
+            return source.updateAsync(rs).thenApply((v) -> rs);
+        });
     }
     }
 
 
     @RestMapping(name = "fortunes")
     @RestMapping(name = "fortunes")
-    public HttpResult<String> queryFortunes() {
-        List<Fortune> fortunes = source.queryList(Fortune.class);
-        fortunes.add(new Fortune(0, "Additional fortune added at request time."));
-        Collections.sort(fortunes);
-        String html = FortunesTemplate.template(fortunes).render().toString();
-        return new HttpResult("text/html; charset=UTF-8", html);
+    public CompletableFuture<HttpResult<String>> queryFortunes() {
+        return source.queryListAsync(Fortune.class).thenApply((fortunes) -> {
+            fortunes.add(new Fortune(0, "Additional fortune added at request time."));
+            Collections.sort(fortunes);
+            String html = FortunesTemplate.template(fortunes).render().toString();
+            return new HttpResult("text/html; charset=UTF-8", html);
+        });
     }
     }
 
 
     private int randomId() {
     private int randomId() {