Skip to content

Commit 471d82a

Browse files
sagenschneiderdependabot-preview[bot]dependabot[bot]
authored
OfficeFloor raw sql client (#6854)
* Removing Rapidoid as seems dead project (no commit last year) * Downloading from SourceForge * Bump maven-compiler-plugin in /frameworks/Java/officefloor/src Bumps [maven-compiler-plugin](https://github.com/apache/maven-compiler-plugin) from 3.8.0 to 3.8.1. - [Release notes](https://github.com/apache/maven-compiler-plugin/releases) - [Commits](apache/maven-compiler-plugin@maven-compiler-plugin-3.8.0...maven-compiler-plugin-3.8.1) Signed-off-by: dependabot-preview[bot] <[email protected]> * Bump maven-shade-plugin in /frameworks/Java/officefloor/src Bumps [maven-shade-plugin](https://github.com/apache/maven-shade-plugin) from 3.2.1 to 3.2.2. - [Release notes](https://github.com/apache/maven-shade-plugin/releases) - [Commits](apache/maven-shade-plugin@maven-shade-plugin-3.2.1...maven-shade-plugin-3.2.2) Signed-off-by: dependabot-preview[bot] <[email protected]> * Fixing Raw OfficeFloor * Specifying Spring plugin version * Bump to OfficeFloor 3.21.0 * Bump spring-boot-maven-plugin in /frameworks/Java/officefloor/src Bumps [spring-boot-maven-plugin](https://github.com/spring-projects/spring-boot) from 2.2.4.RELEASE to 2.2.5.RELEASE. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](spring-projects/spring-boot@v2.2.4.RELEASE...v2.2.5.RELEASE) Signed-off-by: dependabot-preview[bot] <[email protected]> * Bump spring-boot-maven-plugin in /frameworks/Java/officefloor/src Bumps [spring-boot-maven-plugin](https://github.com/spring-projects/spring-boot) from 2.2.5.RELEASE to 2.2.6.RELEASE. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](spring-projects/spring-boot@v2.2.5.RELEASE...v2.2.6.RELEASE) Signed-off-by: dependabot-preview[bot] <[email protected]> * Bump net.officefloor:bom in /frameworks/Java/officefloor/src Bumps [net.officefloor:bom](https://github.com/officefloor/OfficeFloor) from 3.21.0 to 3.22.0. - [Release notes](https://github.com/officefloor/OfficeFloor/releases) - [Commits](https://github.com/officefloor/OfficeFloor/commits) Signed-off-by: dependabot-preview[bot] <[email protected]> * Bump maven-shade-plugin in /frameworks/Java/officefloor/src Bumps [maven-shade-plugin](https://github.com/apache/maven-shade-plugin) from 3.2.2 to 3.2.3. - [Release notes](https://github.com/apache/maven-shade-plugin/releases) - [Commits](apache/maven-shade-plugin@maven-shade-plugin-3.2.2...maven-shade-plugin-3.2.3) Signed-off-by: dependabot-preview[bot] <[email protected]> * Bump net.officefloor:bom in /frameworks/Java/officefloor/src Bumps [net.officefloor:bom](https://github.com/officefloor/OfficeFloor) from 3.22.0 to 3.23.0. - [Release notes](https://github.com/officefloor/OfficeFloor/releases) - [Commits](https://github.com/officefloor/OfficeFloor/commits) Signed-off-by: dependabot-preview[bot] <[email protected]> * Bump net.officefloor:bom in /frameworks/Java/officefloor/src Bumps [net.officefloor:bom](https://github.com/officefloor/OfficeFloor) from 3.23.0 to 3.24.0. - [Release notes](https://github.com/officefloor/OfficeFloor/releases) - [Commits](https://github.com/officefloor/OfficeFloor/commits) Signed-off-by: dependabot-preview[bot] <[email protected]> * Bump spring-boot-maven-plugin in /frameworks/Java/officefloor/src Bumps [spring-boot-maven-plugin](https://github.com/spring-projects/spring-boot) from 2.2.6.RELEASE to 2.2.7.RELEASE. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](spring-projects/spring-boot@v2.2.6.RELEASE...v2.2.7.RELEASE) Signed-off-by: dependabot-preview[bot] <[email protected]> * Bump spring-boot-maven-plugin in /frameworks/Java/officefloor/src Bumps [spring-boot-maven-plugin](https://github.com/spring-projects/spring-boot) from 2.2.7.RELEASE to 2.3.0.RELEASE. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](spring-projects/spring-boot@v2.2.7.RELEASE...v2.3.0.RELEASE) Signed-off-by: dependabot-preview[bot] <[email protected]> * Bump net.officefloor:bom in /frameworks/Java/officefloor/src Bumps [net.officefloor:bom](https://github.com/officefloor/OfficeFloor) from 3.24.0 to 3.25.0. - [Release notes](https://github.com/officefloor/OfficeFloor/releases) - [Commits](https://github.com/officefloor/OfficeFloor/commits) Signed-off-by: dependabot-preview[bot] <[email protected]> * Bump maven-shade-plugin in /frameworks/Java/officefloor/src Bumps [maven-shade-plugin](https://github.com/apache/maven-shade-plugin) from 3.2.3 to 3.2.4. - [Release notes](https://github.com/apache/maven-shade-plugin/releases) - [Commits](apache/maven-shade-plugin@maven-shade-plugin-3.2.3...maven-shade-plugin-3.2.4) Signed-off-by: dependabot-preview[bot] <[email protected]> * Bump spring-boot-maven-plugin in /frameworks/Java/officefloor/src Bumps [spring-boot-maven-plugin](https://github.com/spring-projects/spring-boot) from 2.3.0.RELEASE to 2.3.1.RELEASE. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](spring-projects/spring-boot@v2.3.0.RELEASE...v2.3.1.RELEASE) Signed-off-by: dependabot-preview[bot] <[email protected]> * Bump spring-boot-maven-plugin in /frameworks/Java/officefloor/src Bumps [spring-boot-maven-plugin](https://github.com/spring-projects/spring-boot) from 2.3.1.RELEASE to 2.3.2.RELEASE. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](spring-projects/spring-boot@v2.3.1.RELEASE...v2.3.2.RELEASE) Signed-off-by: dependabot-preview[bot] <[email protected]> * Bump net.officefloor:bom in /frameworks/Java/officefloor/src Bumps [net.officefloor:bom](https://github.com/officefloor/OfficeFloor) from 3.25.0 to 3.26.0. - [Release notes](https://github.com/officefloor/OfficeFloor/releases) - [Commits](officefloor/OfficeFloor@release-3.25.0...release-3.26.0) Signed-off-by: dependabot-preview[bot] <[email protected]> * Bump spring-boot-maven-plugin in /frameworks/Java/officefloor/src Bumps [spring-boot-maven-plugin](https://github.com/spring-projects/spring-boot) from 2.3.2.RELEASE to 2.3.3.RELEASE. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](spring-projects/spring-boot@v2.3.2.RELEASE...v2.3.3.RELEASE) Signed-off-by: dependabot-preview[bot] <[email protected]> * Bump net.officefloor:bom in /frameworks/Java/officefloor/src Bumps [net.officefloor:bom](https://github.com/officefloor/OfficeFloor) from 3.26.0 to 3.27.0. - [Release notes](https://github.com/officefloor/OfficeFloor/releases) - [Commits](https://github.com/officefloor/OfficeFloor/commits) Signed-off-by: dependabot-preview[bot] <[email protected]> * Bump spring-boot-maven-plugin in /frameworks/Java/officefloor/src Bumps [spring-boot-maven-plugin](https://github.com/spring-projects/spring-boot) from 2.3.3.RELEASE to 2.3.4.RELEASE. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](spring-projects/spring-boot@v2.3.3.RELEASE...v2.3.4.RELEASE) Signed-off-by: dependabot-preview[bot] <[email protected]> * Bump net.officefloor:bom in /frameworks/Java/officefloor/src Bumps [net.officefloor:bom](https://github.com/officefloor/OfficeFloor) from 3.27.0 to 3.28.0. - [Release notes](https://github.com/officefloor/OfficeFloor/releases) - [Commits](https://github.com/officefloor/OfficeFloor/commits) Signed-off-by: dependabot-preview[bot] <[email protected]> * Fixing to run with v3.28.0 * Including Undertow * Using slim docker images * Fixing to add all supported tests * Increasing connection pool size * Write up the 503 errors and why * Fix grammer * Bump spring-boot-maven-plugin in /frameworks/Java/officefloor/src Bumps [spring-boot-maven-plugin](https://github.com/spring-projects/spring-boot) from 2.3.4.RELEASE to 2.3.5.RELEASE. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](spring-projects/spring-boot@v2.3.4.RELEASE...v2.3.5.RELEASE) Signed-off-by: dependabot-preview[bot] <[email protected]> * Improving chances of full processing Increasing max thread counts to have thread per client. Also, shading jars correctly. Plus adding in DB test for raw * Fixing raw test to have database * Ensure random numbers to avoid cached entities * Ensuring spring random numbers to avoid entity caching * Adding queries for raw * officefloor-raw queries passing * office-raw supporting all requests * Fixed update test to ensure updates occur before responding * Adding officefloor-async This will demonstrate OfficeFloor running as a single thread asynchronous server * Upgrading to OfficeFloor 2.38.1 * Tidy up read me * Appropriate back pressure queue * Handle rate limiting * Providing appropriate throttling * Lowering threading to handle through put * officefloor-raw passing tests * Passing tests * OfficeFloor 3.28.2 * Fixing rate limiting * Bump net.officefloor:bom in /frameworks/Java/officefloor/src Bumps [net.officefloor:bom](https://github.com/officefloor/OfficeFloor) from 3.28.2 to 3.29.0. - [Release notes](https://github.com/officefloor/OfficeFloor/releases) - [Commits](https://github.com/officefloor/OfficeFloor/commits) Signed-off-by: dependabot-preview[bot] <[email protected]> * Fixing for bump to 3.30.0 * Increasing max direct memory * Increasing threshold to enable verifications to pass for officefloor-raw * Start script to take available memory into consideration * Max direct memory aware of available memory Also, cleaning writer threads of buffers to avoid leaks. * Avoiding OOM by managing disable/enable reading * DB and Fortune passing * Ensuring free command is available * Removing TODOs * Increasing reactor buffer for multiple queries * Fixing for 3.30.1 * Passing benchmark tests * Avoiding OOM on reactor buffer sizes * Passing validate tests * Using defaults from 3.30.1 * Bump to 512 threads and connections * Reverting dockerfiles to provide appropriate parameters * openjdk:slim for apt-get available * Providing thread affinity to raw * Fixing rate limit throttling * Multiplexing queries over connections per socket * Fixing for large queries in validate * Fixing versions of maven and java * Providing thread affinity of DB connection thread * Fixing for Netty event loop thread * Tidying up compiler warnings * Single db pool to avoid additional threads * Use default LoopResources * Tidying up code for warnings * Further tidy up of code * Revert to latest pull request * Using parallel GC for better throughput * Fix up for thread local buffering improvements * OfficeFloor fortune raw Focus of officefloor-raw is raw performance of the OfficeFloor HTTP server. Using raw fortune to remove mustache overheads. * Tidy up loop * Server name (as per discussions) * Bump spring-boot-maven-plugin in /frameworks/Java/officefloor/src Bumps [spring-boot-maven-plugin](https://github.com/spring-projects/spring-boot) from 2.3.5.RELEASE to 2.4.2. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](spring-projects/spring-boot@v2.3.5.RELEASE...v2.4.2) Signed-off-by: dependabot-preview[bot] <[email protected]> * Bump net.officefloor:bom in /frameworks/Java/officefloor/src Bumps [net.officefloor:bom](https://github.com/officefloor/OfficeFloor) from 3.30.2 to 3.31.0. - [Release notes](https://github.com/officefloor/OfficeFloor/releases) - [Commits](https://github.com/officefloor/OfficeFloor/commits) Signed-off-by: dependabot-preview[bot] <[email protected]> * Bump net.officefloor:bom in /frameworks/Java/officefloor/src Bumps [net.officefloor:bom](https://github.com/officefloor/OfficeFloor) from 3.31.0 to 3.32.0. - [Release notes](https://github.com/officefloor/OfficeFloor/releases) - [Commits](https://github.com/officefloor/OfficeFloor/commits) Signed-off-by: dependabot-preview[bot] <[email protected]> * Bump spring-boot-maven-plugin in /frameworks/Java/officefloor/src Bumps [spring-boot-maven-plugin](https://github.com/spring-projects/spring-boot) from 2.4.2 to 2.4.3. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](spring-projects/spring-boot@v2.4.2...v2.4.3) Signed-off-by: dependabot-preview[bot] <[email protected]> * Bump spring-boot-maven-plugin in /frameworks/Java/officefloor/src Bumps [spring-boot-maven-plugin](https://github.com/spring-projects/spring-boot) from 2.4.3 to 2.4.5. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](spring-projects/spring-boot@v2.4.3...v2.4.5) Signed-off-by: dependabot-preview[bot] <[email protected]> * Upgrade to GitHub-native Dependabot * Bump net.officefloor:bom in /frameworks/Java/officefloor/src Bumps [net.officefloor:bom](https://github.com/officefloor/OfficeFloor) from 3.32.0 to 3.35.0. - [Release notes](https://github.com/officefloor/OfficeFloor/releases) - [Commits](https://github.com/officefloor/OfficeFloor/commits/release-3.35.0) Signed-off-by: dependabot-preview[bot] <[email protected]> * Bump to OfficeFloor 3.35.0 * Allow bump of all versions * Vertx server Also, renaming officefloor-raw to officefloor-r2dbc to make way for officefloor-sqlclient * Rename to R2dbc (from raw) * Bump net.officefloor:bom in /frameworks/Java/officefloor/src Bumps [net.officefloor:bom](https://github.com/officefloor/OfficeFloor) from 3.35.0 to 3.36.0. - [Release notes](https://github.com/officefloor/OfficeFloor/releases) - [Commits](https://github.com/officefloor/OfficeFloor/commits) Signed-off-by: dependabot[bot] <[email protected]> * Fixing meta-data * Can not propagate Dependabot to TechEmpower * Abstract WoOF from database driver This will allow introducing Vertx SQL Client * Fixing db port * Providing Vertx SQL Client implementation * Using OfficeFloorVertx for vertx Allows for tests to reset * Fixing link in read me * Reducing repetition in readme * Swapped OfficeFloor async to use Vertx SQL Client * Bump spring-boot-maven-plugin in /frameworks/Java/officefloor/src Bumps [spring-boot-maven-plugin](https://github.com/spring-projects/spring-boot) from 2.4.5 to 2.5.0. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](spring-projects/spring-boot@v2.4.5...v2.5.0) Signed-off-by: dependabot[bot] <[email protected]> * Increasing SQL Client pool size to 512 Also, fixing update to sort to avoid deadlocks * Removing unnecessary logging * Removing dependabot configuration * Improving performance of Vertx This is by caching queries and using native communication. Also, adding further performance updates to update test by sorting updates * Fixing OfficeFloor-vertx name * Reducing load on DB callback threads * Database worker threads relative to number of socket threads * Further improvements to performance (by less contention) * Avoid lock on write stream * Using Guava * Removing commented out line * Providing Cache implementation * Re-enabling thread affinity * Making R2DBC more resilient * Adding cached query configuration entries * Caching runs off World table * Only require World able * Should be all I/O for SQLClient * Reducing event loops for SQL connections * Providing thread affinity on sql callbacks * Removing unnecessary if * Bump OfficeFloor to 3.38.0 * Improving latency for request/response over database connections * Disable Nagle * Providing tuned connection pooling * Reduce number of connections * Comparing Postgres rule of thumb Trying out https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing connections = ((core_count * 2) + effective_spindle_count) * Merge branch 'master' of [email protected]:TechEmpower/FrameworkBenchmarks.git * Fixing classpath for Postgresql * Providing lower layer driver without synchronise of Vertx promises * Including raw SQL client * Raw SQL client passing verify * Fixing display name * Optimising update Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1 parent ea2ef13 commit 471d82a

File tree

8 files changed

+436
-1
lines changed

8 files changed

+436
-1
lines changed

frameworks/Java/officefloor/benchmark_config.json

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,28 @@
7171
"display_name": "OfficeFloor-sqlclient",
7272
"notes": ""
7373
},
74+
"rawsqlclient": {
75+
"json_url": "/json",
76+
"plaintext_url": "/plaintext",
77+
"db_url": "/db",
78+
"query_url": "/queries?queries=",
79+
"fortune_url": "/fortunes",
80+
"update_url": "/update?queries=",
81+
"port": 8080,
82+
"approach": "Realistic",
83+
"classification": "Platform",
84+
"database": "Postgres",
85+
"framework": "OfficeFloor",
86+
"language": "Java",
87+
"flavor": "None",
88+
"orm": "raw",
89+
"platform": "OfficeFloor",
90+
"webserver": "WoOF",
91+
"os": "Linux",
92+
"database_os": "Linux",
93+
"display_name": "OfficeFloor-rawsqlclient",
94+
"notes": ""
95+
},
7496
"async": {
7597
"json_url": "/json",
7698
"plaintext_url": "/plaintext",

frameworks/Java/officefloor/config.toml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,23 @@ platform = "OfficeFloor"
108108
webserver = "WoOF"
109109
versus = "None"
110110

111+
[rawsqlclient]
112+
urls.plaintext = "/plaintext"
113+
urls.json = "/json"
114+
urls.db = "/db"
115+
urls.query = "/queries?queries="
116+
urls.update = "/update?queries="
117+
urls.fortune = "/fortunes"
118+
approach = "Realistic"
119+
classification = "Platform"
120+
database = "Postgres"
121+
database_os = "Linux"
122+
os = "Linux"
123+
orm = "raw"
124+
platform = "OfficeFloor"
125+
webserver = "WoOF"
126+
versus = "None"
127+
111128
[undertow]
112129
urls.plaintext = "/plaintext"
113130
urls.json = "/json"
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
FROM maven:3.6.3 as maven
2+
WORKDIR /officefloor
3+
COPY src src
4+
WORKDIR /officefloor/src
5+
RUN mvn -B -N clean install
6+
WORKDIR /officefloor/src/woof_benchmark_woof
7+
RUN mvn -B clean install
8+
WORKDIR /officefloor/src/woof_benchmark_rawsqlclient
9+
RUN mvn -B clean package
10+
11+
FROM openjdk:15-slim
12+
RUN apt-get update && apt-get install -y libjna-java
13+
WORKDIR /officefloor
14+
COPY --from=maven /officefloor/src/woof_benchmark_rawsqlclient/target/woof_benchmark_rawsqlclient-1.0.0.jar server.jar
15+
EXPOSE 8080
16+
CMD ["java", "-Xms2g", "-Xmx2g", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-Dvertx.disableMetrics=true", "-Dvertx.threadChecks=false", "-Dvertx.disableContextTimings=true", "-Dvertx.disableTCCL=true", "-jar", "server.jar"]

frameworks/Java/officefloor/src/pom.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
<module>woof_benchmark_async</module>
2121
<module>woof_benchmark_r2dbc</module>
2222
<module>woof_benchmark_sqlclient</module>
23+
<module>woof_benchmark_rawsqlclient</module>
2324
<module>woof_benchmark_netty</module>
2425
<module>woof_benchmark_undertow</module>
2526
<module>woof_benchmark_vertx</module>
@@ -71,6 +72,14 @@
7172
<artifactId>guava</artifactId>
7273
<version>29.0-jre</version>
7374
</dependency>
75+
76+
<!-- Necessary for PostGresql -->
77+
<dependency>
78+
<groupId>com.ongres.scram</groupId>
79+
<artifactId>client</artifactId>
80+
<version>2.1</version>
81+
</dependency>
82+
7483
</dependencies>
7584
</dependencyManagement>
7685
<build>

frameworks/Java/officefloor/src/woof_benchmark_async/pom.xml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,13 @@
3030
<artifactId>lombok</artifactId>
3131
<scope>provided</scope>
3232
</dependency>
33+
34+
<!-- Necessary for PostGresql -->
35+
<dependency>
36+
<groupId>com.ongres.scram</groupId>
37+
<artifactId>client</artifactId>
38+
</dependency>
39+
3340
</dependencies>
3441
<build>
3542
<plugins>
@@ -55,4 +62,4 @@
5562
</plugin>
5663
</plugins>
5764
</build>
58-
</project>
65+
</project>
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
4+
<modelVersion>4.0.0</modelVersion>
5+
<parent>
6+
<groupId>net.officefloor.benchmarks</groupId>
7+
<artifactId>benchmarks</artifactId>
8+
<version>1.0.0</version>
9+
</parent>
10+
<artifactId>woof_benchmark_rawsqlclient</artifactId>
11+
<dependencies>
12+
<dependency>
13+
<groupId>net.officefloor.benchmarks</groupId>
14+
<artifactId>woof_benchmark_woof</artifactId>
15+
</dependency>
16+
<dependency>
17+
<groupId>net.officefloor.vertx</groupId>
18+
<artifactId>officevertx</artifactId>
19+
</dependency>
20+
<dependency>
21+
<groupId>io.vertx</groupId>
22+
<artifactId>vertx-pg-client</artifactId>
23+
</dependency>
24+
25+
<!-- Necessary for PostGresql -->
26+
<dependency>
27+
<groupId>com.ongres.scram</groupId>
28+
<artifactId>client</artifactId>
29+
</dependency>
30+
31+
</dependencies>
32+
<build>
33+
<plugins>
34+
<plugin>
35+
<groupId>org.apache.maven.plugins</groupId>
36+
<artifactId>maven-shade-plugin</artifactId>
37+
<executions>
38+
<execution>
39+
<phase>package</phase>
40+
<goals>
41+
<goal>shade</goal>
42+
</goals>
43+
<configuration>
44+
<transformers>
45+
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
46+
<mainClass>net.officefloor.benchmark.RawSqlClientOfficeFloorMain</mainClass>
47+
</transformer>
48+
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
49+
</transformers>
50+
</configuration>
51+
</execution>
52+
</executions>
53+
</plugin>
54+
</plugins>
55+
</build>
56+
</project>

0 commit comments

Comments
 (0)